Files
Chess_Probabilistic_Program…/lichess-engine.py

21 lines
766 B
Python

from lichess_bot.lib.engine_wrapper import MinimalEngine, MOVE
import chess.engine
import engine
class ProbStockfish(MinimalEngine):
def search(self, board: chess.Board, time_limit: chess.engine.Limit, ponder: bool, draw_offered: bool,
root_moves: MOVE) -> chess.engine.PlayResult:
moves = {}
untried_moves = list(board.legal_moves)
for move in untried_moves:
mean, std = engine.simulate_game(board, move, 10)
moves[move] = (mean, std)
return self.get_best_move(moves)
def get_best_move(self, moves: dict) -> chess.engine.PlayResult:
best_avg = max(moves.items(), key=lambda m: m[1][0])
next_move = best_avg[0]
return chess.engine.PlayResult(next_move, None)