Check out Modern Chess, our featured variant for January, 2025.

Enter Your Reply

The Comment You're Replying To
H. G. Muller wrote on Wed, Oct 22, 2008 04:44 PM UTC:
Fergus: | I would like to start with integrating Game Courier with a game engine. If I understand you correctly, you would want this engine to run on the same computer that acts as server for GC. WinBoard engines would typically allow what you want: you could sent them a list of (linefeed-separated) moves, after sending it the commands new variant setboard force g1f3 d7d5 (where the variant and setboard commands are optional, and can be omitted if you play normal Chess or start from the default array of the given varant, respectively). The 'force' tells it that you are just going to feed it moves for both sides, and don't want it to play any moves by itself. If you send an illegal move, i.e. something that does have valid move syntax of two concatenated squares, but is illegal according to the rules of the game in the current position, you will receive the answer Illegal move: where the offending input line is echoed back, so that you can determine where it goes wrong. If even the syntax is invalid, so that it is not recognized as a move, the complaint will be Error (unknown command): Engines do not prompt for moves, so if the move was OK you will receive no echo. If you want to make sure the engine has processed everything you sent it, before proceeding, you can send it 'ping ', where is any number. The engine will then answer 'pong ' when it is done processing, echoing the number back to you. WinBoard protocol does not define a way for the engine to transmit a position to the GUI, but a command making them do so can of course be added without detroying their WB compatibility. In fact all my own engines respond to the non-WB command 'p' by printing an ASCII board, for debugging purposes when I run them from the command line, rather than in a GUI. If you want the engines to provide a move, you would start the same way (sending variant name, position and moves) for loading the position, and then send time go to tell the engine how much time it has left on the clock, and that it should think up a move. You might have to give it a 'level' command at the beginning of the game to tell it how many moves it has to do in the given time. This sounds pretty close to what you want.

Edit Form

You may not post a new comment, because ItemID Zillions and GC does not match any item.