예제 #1
0
    def test_generate_random_board(self):
        board = Board.generate_random_board()
        self.assertEqual(len(board), 19)
        truth_num = {
            GRID_TYPES.DESERT: 1,
            GRID_TYPES.STONE: 3,
            GRID_TYPES.BRICKS: 3,
            GRID_TYPES.SHEEP: 4,
            GRID_TYPES.WHEAT: 4,
            GRID_TYPES.WOOD: 4,
        }
        counts = {
            GRID_TYPES.DESERT: 0,
            GRID_TYPES.STONE: 0,
            GRID_TYPES.BRICKS: 0,
            GRID_TYPES.SHEEP: 0,
            GRID_TYPES.WHEAT: 0,
            GRID_TYPES.WOOD: 0,
        }
        for tile in board:
            self.assertIsInstance(tile, Tile)
            self.assertIsInstance(tile.type, GRID_TYPES)
            if tile.type == GRID_TYPES.DESERT:
                self.assertIsNone(tile.value)
            else:
                self.assertIsInstance(tile.value, int)
            counts[tile.type] += 1

        for t in truth_num:
            self.assertEqual(counts[t], truth_num[t])
예제 #2
0
  def __init__(self, agents, use_db=False):
    self.agents = agents
    self.board = Board.generate_random_board()
    self.players = [Player(self, players[i][0], players[i][1]) for i in range(len(agents))]
    self.nodes = self.init_nodes()
    self.current_turn = 0
    self.num_turns = 0
    self.dice_roll = None
    self.finished = False
    self.winner = None
    self.time = 0
    self.turn_data = []
    self.use_db = use_db

    if self.use_db:
      self.db = db.get_db()
      player_ids = [agent.player_id for agent in agents]
      game_in_db = db.create_game(player_ids)
      self.game_id = game_in_db['id']