|-cxboard||Tells tsito that it is communicating to a GUI, not a user. Output is less user friendly and more pragmatically useful.|
|-red||Tells tsito to play red.|
|-blue||Tells tsito to play blue; the default.|
|-nobook||Tells tsito not to use an opening book.|
|Tells tsito the maximum depth to use for searching the game tree. More means better play but slower responce.|
|Tells tsito how many bits to use for indexing in the transposition table. The size of the table will be 2^hash-table-bits elements wide.|
MOVE_TEXT Moves can be entered at the prompt in place of commands. These moves are interpreted as the users move and are made up of exactly 2 sets of 2 characters without any spaces. Each set of characters represent a square on the board, with the first set being the origin and the second being the destination. Ranks are labeled by numbers from 0-9 and files are letters from a-i; character sets are composed of file followed by rank. Moves are not case sensitive.
Example: h2e2 - This is the common opening move of reds right cannon moving to the center of the board.
cxboard Tell tsito to start talking to a GUI. console Tell tsito to start talking to a human. red Tell tsito that the human player is red, tsito will play blue. blue Tell tsito that the human player is blue, tsito will play red. force Enter force mode; computer plays niether color and only checks entered moves for legality. sd depth Use max depth of depth for search tree. post Display thinking. nopost Stop displaying thinking. vomit Prints the starting position, the current position, and entire move history for the current game to stderr. go Tell the engine to start playing the side to move. force Place the engine into force mode. Engine plays neither side but acts as a referee. undo Take back the last move. This command is only available in force mode. remove Take back the last two moves - in other words take back YOUR last move. This command can be used in any mode. ? If the engine is thinking about its next move this command forces it to make a move right now. st seconds Sets the count in seconds available for each side to make a single move. Counter is reset each time a legal move is made. If either side runs out of time during their move then the game is lost. time Shows the time available. t Shorthand for the time command. new Resets the board to the default starting position and starts a new game. setboard cfen Sets the board based on the supplied cfen notation position description and starts a new game. The supplied argument must match the CFEN description below. set option value Sets engine specific option to value.
search value Sets the search method to use for finding computer moves. Available values are: mtd - Very fast but not particularly stable (as in sometimes makes questionable moves). alphabeta (default)- Slow but very stable. negascout - Medium speed, questionable stability. nullmove on/off If this option is on (default) then the engine will use null moves to speed up the search. verifynull on/off If this option is on (default) then tsito will increase the null move reduction factor and verify all null move cutoffs. This increases search stability at some cost to the speed gained by the null move. hash on/off If this option is on (default) then tsito will use a transposition table to greately reduce the amount of search nodes that must be evaluated by saving calculations already made and using those values if the same position is found again. hashadjust If this option is on (off by default) then when tsito finds a position that it has seen before but has not search to the depth it wants to now it will adjust the alpha-beta window to try and increase cutoffs. This can cause some conflicts with null moves and is considered an unstable option. This option has no effect if the search method is mtd. iterative If this option is on (default) then tsito will search depths incrimentaly so that moves are ordered better. It is actually faster to search to each depth up to max depth instead of just searching to max depth the first time.
CFEN is my own version of the standard FEN notation altered to represent a chinese chess position. Like FEN it consists first of a string of characters representing the layout of the board. This string starts at a9 and stops at i0 (blue to red, left to right from reds side). Emty spaces are represented by integers that count how many consecutive spaces are empty. Pieces are represented by their respective character, blue is lower case whereas red is uppercase. Each rank is separated by a / character and space counts do not span multiple ranks. Folowing this layout description is a space followed by a b or r representing the side to move. Since there are no castling or en-pasant rights in chinese chess, these are not implemented. The half move count is also ommited.
Example: r2Rka1hr/4a4/e3e3c/p1p1C1p1p/9/6P2/P1P1P3P/2H3H1E/3RA4/1cEK1A3 r
Pp - soldier (pawn)
Cc - canon
Rr - cart (rook)
Hh - horse
Ee - elephant
Aa - guard (advisor)
Kk - general (king)
The command set used in tsito is modeled after the xboard protocol by Tim Mann, which can be viewed at http://www.tim-mann.org/xboard/engine-intf.html
When using null window search methods like mtd and negascout then sometimes a null move can end up in the primary line. This happens rather often and on not so rare occasions it effects the search poorly. The only way to get rid of the bug is to either not use these search methods or turn off null move heuristics. I decided to leave that up to you, the user. If you find that it is often making stupid moves and you are beating it regularly because of this, try turning null moves off or using alphabeta as the search method. You may need to lower the search depth if you do this. Using null move verification does help quite a bit but does not get rid of the problem all together.
This man page writen by Noah Roberts
The origional tsito XiangQi engine was written by Noah Roberts as part of his senior project while enroled in the Computer Science department at St. Martins College and Abby. The other members of the team, Scott Christian and Anthony Czyk, contributed related works including a Win32 GUI and documentation