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])
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']