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