implement limit and fix evaluation

This commit is contained in:
2024-01-29 14:05:47 +01:00
parent f1a36964df
commit bbf7ae880d
5 changed files with 37 additions and 24 deletions

View File

@@ -1,14 +1,25 @@
import os
import chess
from chesspp.i_strategy import IStrategy
import chess.engine
_DIR = os.path.abspath(os.path.dirname(__file__))
class StockFishStrategy(IStrategy):
stockfish: chess.engine.SimpleEngine
def __init__(self):
self.stockfish = chess.engine.SimpleEngine.popen_uci(
"/home/luke/projects/pp-project/chess-engine-pp/stockfish/stockfish-ubuntu-x86-64-avx2")
self._stockfish = None
@property
def stockfish(self) -> chess.engine.SimpleEngine:
if self._stockfish is None:
self._stockfish = self.stockfish = chess.engine.SimpleEngine.popen_uci(
os.path.join(_DIR, "../stockfish/stockfish-ubuntu-x86-64-avx2"))
return self._stockfish
@stockfish.setter
def stockfish(self, stockfish):
self._stockfish = stockfish
def pick_next_move(self, board: chess.Board) -> chess.Move | None:
move = self.stockfish.play(board, chess.engine.Limit(depth=4)).move