Spaces:
Runtime error
Runtime error
| """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) | |