"""Homemade engine playing scholar's mate.""" from homemade import ExampleEngine import chess import chess.engine from lib.config import Configuration from lib import model from lib.lichess_types import OPTIONS_GO_EGTB_TYPE, COMMANDS_TYPE, MOVE from test_bot.test_games import scholars_mate # ruff: noqa: ARG002 class ScholarsMate(ExampleEngine): """A homemade engine that plays the scholar's mate.""" def __init__(self, commands: COMMANDS_TYPE, options: OPTIONS_GO_EGTB_TYPE, stderr: int | None, draw_or_resign: Configuration, game: model.Game | None, debug: bool, **popen_args: str) -> None: """Set up engine.""" super().__init__(commands, options, stderr, draw_or_resign, game, debug, **popen_args) def search(self, board: chess.Board, time_limit: chess.engine.Limit, ponder: bool, draw_offered: bool, root_moves: MOVE) -> chess.engine.PlayResult: """Get the next scholar's mate move.""" move_number = len(board.move_stack) move = board.parse_uci(scholars_mate[move_number]) return chess.engine.PlayResult(move, None)