VeloCT_Base / test_bot /xboard_engine.py
Taperx's picture
Deploy Base model with clean official lichess-bot folder
3014f14
Raw
History Blame Contribute Delete
997 Bytes
"""An engine mimics an XBoard engine."""
import chess
import typing
if typing.TYPE_CHECKING:
from test_bot.test_games import scholars_mate
else:
from test_games import scholars_mate
assert input() == "xboard"
assert input() == "protover 2"
def send_command(command: str) -> None:
"""Send XBoard commands to lichess-bot without output buffering."""
print(command, flush=True) # noqa: T201 (print() found)
send_command('feature myname="XBoard Test Bot" ping=1 setboard=1 usermove=1 done=1')
board = chess.Board()
while True:
command, *remaining = input().split()
if command == "quit":
break
elif command == "ping":
send_command(f"pong {''.join(remaining)}")
elif command == "new":
board = chess.Board()
elif command == "usermove":
board.push_xboard("".join(remaining))
move_count = len(board.move_stack)
move = scholars_mate[move_count]
send_command(f"move {move}")
board.push_xboard(move)