ai [classic|adaptive] Change the AI engine on demand (on the fly). The classic engine uses simple heuristics and negamax() with alpha-beta pruning. The adaptive AI engine uses also negamax() and alpha-beta pruning, however it uses improved heuristics. auto Let the computer play both sides (black and white). This can be the equivalent to 'solve' in other computer chess programs, because the computer plays both sides and finishes the match by itself. cache [N] Set the search cache size limit to N megabytes. If the argument is 0, then the cache feature will be completely turned off. If no argument is given, then the application displays what is the current cache size limit. Please note that, the larger the cache, the faster the AI search will run. depth [N] Set the search depth of the computer to N-plies (half-moves). The depth must be a minimum of 1, and there is no maximum limit. However, consider that a depth higher than 7 will result in a very long time for obtaining a move from the computer. If no depth is given, then the application tells what is the current search depth. display [quantum] Display an ASCII representation of the current game's board. The white pieces are represented with capital letters, whereas the black pieces are represented with small letters next to an asterisk. If the argument 'quantum' is given, then the program will display a representation of what is the current arrangement for the heuristic estimates. draw Offer draw to your opponent. If the draw is accepted, the match ends in draw score. Otherwise, the match just continues as normal. edit Enter in position editing mode. The program will first wipe all the pieces from the board and ask you for entering the white pieces. These pieces are entered one by one (separeted by pressing Enter) and according to the format PIECE+COLUMN+ROW (e.g. Ke2). When the white pieces are done, then enter '.' (dot) and press Enter, so the black pieces are asked to be entered. When the black pieces are entered, then enter '#' (hash) and press Enter to exit from the position editing mode. Please note that, if the position is invalid (such as two kings, or double check), the program will complain and the previous original board will be restored. eval Give an absolut heuristic evaluation of the current board. Please note that this command will make use of the current AI engine in use. Thus, depending on the engine, the heuristic evaluation may differ quite much. go Tell the machine to take the control on the current turn and play for the player whose turn is the the current one. After this command, the machine will always control the side whose control has been taken. help Show the general help. history Display the history (sequence of moves) of the current game. load FILENAME Load a board position from a file. Please note that this command loads a position, not a match (do not confuse with the PGN format). If the file is not valid, or the position in it is not valid, the program will not load it and return to the previously working board position. As a note, these board positions (files) are usually saved with the command 'save', although you could manually create and edit your own board position file. log [FILENAME|off] Enable or disable logging to a disk file. By issuing this command without parameters, chess0 will display the current status of the logging setting. If you specify a parameter different than 'off', chess0 will start writing log output to a file with the name given in the parameter. On the other hand, if you give the parameter 'off', the logging support will be disabled. Please note that logging is disabled by default. Moreover it is only implemented in the Board module, so far. manual Set both players to be played by human input. material Display the material balance of the current game. new Start a new game. pass Make a null move. This means that no move is actually performed on the board, but the turn moves over the other player. This command is mainly used for testing certain positions. resign Resign and let your opponent win immediately. The game is then finished at this point. save FILENAME Save a board position to a file. Please note that this command saves a position, not a match (do not confuse with the PGN format. As a note, these board positions (files) are usually loaded with the command 'load', although you could manually create and edit your own board position using the 'edit' command. solve [depth] Start thinking how to solve the current board. This mode puts the computer to play both sides and makes it try to solve the current situation on the board up to some depth. If no depth is given, the computer will search the solution forever (unless it finds it). Otherwise, it will try to solve the problem and it will give up when it reaches the given depth. test [moves|nodes] Test how many moves can be done/undone per second, or how many nodes can be evaluated per second, using the negamax() algorithm. If no argument is given, both tests will be performed, one after another. Please note that the efficiency of the nodes test will depend on the situation on the board, as different boards have different amount of possibilities. undo | back Take back a move from the game. verbose [on|off] Set the application into verbose mode, either on or off. In verbose mode, the program will show the status of the board after each move and some other information. quit | exit Quit the application.