Doors #156

Merged
ynerant merged 9 commits from doors into map_generation 2021-01-10 22:54:14 +00:00
1 changed files with 4 additions and 3 deletions
Showing only changes of commit 8f845d1e4c - Show all commits

View File

@ -27,15 +27,16 @@ class TestBroguelike(unittest.TestCase):
def is_connex(self, grid: List[List[Tile]]) -> bool: def is_connex(self, grid: List[List[Tile]]) -> bool:
h, w = len(grid), len(grid[0]) h, w = len(grid), len(grid[0])
y, x = randint(0, h - 1), randint(0, w - 1) y, x = randint(0, h - 1), randint(0, w - 1)
while not (grid[y][x].can_walk()): while not (grid[y][x].can_walk() or grid[y][x] == Tile.DOOR):
y, x = randint(0, h - 1), randint(0, w - 1) y, x = randint(0, h - 1), randint(0, w - 1)
queue = Map.neighbourhood(grid, y, x) queue = Map.neighbourhood(grid, y, x)
while queue: while queue:
y, x = queue.pop() y, x = queue.pop()
if grid[y][x].can_walk(): if grid[y][x].can_walk() or grid[y][x] == Tile.DOOR:
grid[y][x] = Tile.WALL grid[y][x] = Tile.WALL
queue += Map.neighbourhood(grid, y, x) queue += Map.neighbourhood(grid, y, x)
return not any([t.can_walk() for row in grid for t in row]) return not any([t.can_walk() or t == Tile.DOOR
for row in grid for t in row])
def test_build_doors(self) -> None: def test_build_doors(self) -> None:
m = self.stom(". .\n. .\n. .\n") m = self.stom(". .\n. .\n. .\n")