Ejemplo n.º 1
0
    def get_next_move(self, board: KalahBoard):
        house_id = board.get_house_id(board.current_player())

        for mv in sorted(board.allowed_moves(), reverse=True):
            seeds = board.get_board()[mv]
            if (house_id - mv) == seeds:
                return mv

        return self.random.choice(utils.get_best_moves(board))
Ejemplo n.º 2
0
    def test_get_house_id(self):
        board = KalahBoard(2, 2)
        self.assertEqual(board.get_house_id(0), 2)
        self.assertEqual(board.get_house_id(1), 5)

        board = KalahBoard(4, 2)
        self.assertEqual(board.get_house_id(0), 4)
        self.assertEqual(board.get_house_id(1), 9)

        board = KalahBoard(4, 4)
        self.assertEqual(board.get_house_id(0), 4)
        self.assertEqual(board.get_house_id(1), 9)

        board = KalahBoard(6, 4)
        self.assertEqual(board.get_house_id(0), 6)
        self.assertEqual(board.get_house_id(1), 13)

        board = KalahBoard(6, 6)
        self.assertEqual(board.get_house_id(0), 6)
        self.assertEqual(board.get_house_id(1), 13)