Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
 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)
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
 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)]
Ejemplo n.º 6
0
 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)
Ejemplo n.º 7
0
 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))
Ejemplo n.º 8
0
 def testWallTile(self):
     tile = WallTile((1, 1))
     self.assertEqual((1, 1), tile.get_position())
     with self.assertRaises(TypeError):
         tile.add_item("footprint")