def generate_tiles(self, tiles): grid = [] x = len(tiles) y = len(tiles[0]) offX = self.upperLeft[0] offY = self.upperLeft[1] for i in range(x): column = [] for j in range(y): new_tile = None if tiles[i][j] == 0: new_tile = WallTile((i + offX, j + offY)) elif tiles[i][j] == 1: new_tile = Tile((i + offX, j + offY)) new_tile.set_room(self) column.append(new_tile) grid.append(column) return grid
def testGhostPickMoves1(self): example = [] for x in range(5): column = [] for y in range(5): if x == 0: column.append(WallTile((x, y))) else: column.append(Tile((x, y))) example.append(column) gost = AdversaryDriver("Boo", "ghost", 2, []) gost.update_state(SimpleState(example), (2, 2)) moves = gost.pick_moves() self.assertEqual([(2, 1), (1, 2)], moves)
def testRadiusGhost2(self): example = [] for x in range(5): column = [] for y in range(5): if x == 0: column.append(WallTile((x, y))) else: column.append(Tile((x, y))) example.append(column) gost = AdversaryDriver("Boo", "ghost", 2, []) gost.gameState = example result = gost.ring((0, 0), (4, 4)) self.assertEqual([(0, 0), (0, 4), (0, 3), (0, 2), (0, 1)], result) example[1][1].add_character(Player(1, 0, "name")) result = gost.ring((0, 0), (4, 4)) self.assertEqual([(0, 0), (0, 4), (0, 3), (0, 2), (0, 1)], result)
def testZombiePickMoves1(self): room = Room([[]], (0, 0)) example = [] for x in range(5): column = [] for y in range(5): if x == 0: column.append(WallTile((x, y))) else: t = Tile((x, y)) t.room = room column.append(Tile((x, y))) example.append(column) example[1][1].add_character(Player(1, 0, "reggie")) gost = AdversaryDriver("Boo", "zombie", 2, []) gost.update_state(SimpleState(example), (2, 2)) moves = gost.pick_moves() self.assertEqual([(2, 1)], moves)
def minGridSize(self, rooms, halls): maxX = 0 maxY = 0 for room in rooms: offX, offY = room.upperLeft width = room.room_width() height = room.room_height() maxX = max(maxX, offX + width) maxY = max(maxY, offY + height) for hall in halls: points = hall.get_waypoints() for point in points: maxX = max(maxX, point[0]) maxY = max(maxY, point[1]) maxX = maxX + 1 maxY = maxY + 1 self.cols = maxX self.rows = maxY return [[WallTile((i, j)) for j in range(maxY)] for i in range(maxX)]
def testZombieRequestMove1(self): room = Room([[]], (0, 0)) example = [] for x in range(5): column = [] for y in range(5): if x == 0: column.append(WallTile((x, y))) else: t = Tile((x, y)) t.room = room column.append(Tile((x, y))) example.append(column) # example[1][1].add_character(Player(1, 0, "reggie")) gost = AdversaryDriver("Boo", "zombie", 2, []) gost.update_state(SimpleState(example), (2, 2)) moves = [] moves.append(gost.request_move()) moves.append(gost.request_move()) moves.append(gost.request_move()) moves.append(gost.request_move()) moves.append(gost.request_move()) expected = [(3, 2), (2, 1), (2, 3), (1, 2), (2, 2)] for ex in expected: self.assertTrue(ex in moves) room.addDoor(example[2][1], Hallway((0, 0), (2, 1), [])) example[2][1].set_room(room) moves = [] state = SimpleState(example) gost.update_state(state, (2, 3)) state.get_tile_at((2, 1)).set_room(room) gost.update_state(state, (2, 2)) moves.append(gost.request_move()) moves.append(gost.request_move()) moves.append(gost.request_move()) moves.append(gost.request_move()) expected = [(3, 2), (2, 3), (1, 2), (2, 2)] for ex in expected: self.assertTrue(ex in moves)
def test3(self): example = [[WallTile((i, j)) for i in range(10)] for j in range(10)] new = JLevel.player_layout(example, (5, 5)) old = self.player_layout(example, (5, 5))
def testWallTile(self): tile = WallTile((1, 1)) self.assertEqual((1, 1), tile.get_position()) with self.assertRaises(TypeError): tile.add_item("footprint")