Переглянути джерело

Implemented treasure

master
Noëlle Anthony 6 роки тому
джерело
коміт
fe815f29b7
1 змінених файлів з 20 додано та 4 видалено
  1. 20
    4
      CellMap.py

+ 20
- 4
CellMap.py Переглянути файл

@@ -4,6 +4,7 @@ from PIL import Image
class CellMap:
initial = []
genmap = []
treasurelist = []

def __init__(self, height=None, width=None, seed=None, death=None,
birth=None, reps=0, out=None, color=None, chunky=None,
@@ -107,6 +108,8 @@ class CellMap:
for _ in range(self.reps):
self.smoothMap()
if self.out:
if self.treasure:
self.generateTreasure()
self.createImage()
else:
self.printScreen()
@@ -189,16 +192,28 @@ class CellMap:
# So we make this neighbor count as a wall.
count += 1
#pass
elif self.genmap[n_y][n_x]:
elif self.genmap[n_y][n_x] and self.genmap[n_y][n_x] != "Gold":
# This neighbor is on the map and is a wall.
count += 1
return count

def generateTreasure(self):
self.treasurelist = []
walledin = False
for j in range(len(self.genmap)):
for i in range(len(self.genmap[j])):
if not self.genmap[j][i]:
walledin = True if self.countWalls(i,j) >= 5 else False
if walledin:
self.genmap[j][i] = "Gold"
walledin = False

def printScreen(self):
wall = "II"
path = " "
gold = "GG"
for line in self.genmap:
print("".join([wall if x else path for x in line]))
print("".join([path if not x else (gold if x == "Gold" else wall) for x in line]))
print()

def createImage(self):
@@ -213,16 +228,17 @@ class CellMap:
c_wall = [random.randint(0,255), random.randint(0,255), random.randint(0,255)] if self.color else [0,0,0]
# Paths are white by default
c_space = [255-x for x in c_wall]
c_gold = [(x+64)%255 for x in c_space]
if self.chunky:
for line in self.genmap:
for _ in range(2):
for val in line:
for _ in range(2):
lst.append(tuple(c_wall) if val else tuple(c_space))
lst.append(tuple(c_space) if not val else (tuple(c_gold) if val == "Gold" else tuple(c_wall)))
else:
for line in self.genmap:
for val in line:
lst.append(tuple(c_wall) if val else tuple(c_space))
lst.append(tuple(c_space) if not val else (tuple(c_gold) if val == "Gold" else tuple(c_wall)))
img.putdata(lst)
if not os.path.exists("maps"):
os.makedirs("maps")

Завантаження…
Відмінити
Зберегти