Updating to version 1.3, release made by Mike Vanier (mvanier@bbb.caltech.edu).
[gnushogi.git] / doc / gnushogi.6
diff --git a/doc/gnushogi.6 b/doc/gnushogi.6
new file mode 100644 (file)
index 0000000..f7d1502
--- /dev/null
@@ -0,0 +1,442 @@
+.TH gnushogi 6
+.SH NAME
+gnushogi \- GNU Shogi (Japanese Chess), version 1.3
+.SH SYNOPSIS
+.B gnushogi
+[
+.B [[-]a] 
+.B [-b bookfile] 
+.B [-B binbookfile] 
+.B [-C] 
+.B [-h langfile] 
+.B [-L langfile] 
+.B [-r length]
+.B [-R]
+.B [-s pathname] [-l pathname] 
+.B [-S binbooksize]
+.B [-t] [-c size] 
+.B [-T size]
+.B [-v]
+.B [-x]
+.B [-X]
+.B arg1 arg2
+]
+.SH DESCRIPTION
+.I Gnushogi
+plays a game of japanese chess (shogi) against the user or it plays against
+itself.
+.PP
+At startup 
+.I Gnushogi
+reads the
+.I binbook
+file if it is present. It then looks for a 
+.I book
+file. If it is present it adds its contents to the 
+.I binbook
+data. If the 
+.I binbook
+file is writable a new combined
+.I binbook
+file is written.
+
+.PP
+.I Gnushogi
+is a modified version of the gnuchess program.  It has a simple
+alphanumeric board display, or it can be compiled for use with the
+.B xshogi 
+program under X windows.  The program gets its opening moves from the file
+.B gnushogi.bbk 
+which is located in a directory specified in the Makefile.  To invoke the
+program type:
+.TP
+.B gnushogi -C
+- simple curses based version
+.TP
+.B gnushogi -X (or just gnushogi)
+- xshogi compatible version
+.TP
+.B gnushogi -R
+- raw test display version
+.SH TIME CONTROLS
+.PP
+If one argument is given, it is the search time per move in 
+[minutes:]seconds.
+So 
+.B gnushogi 30
+will generate one move every 30 seconds, while
+.B gnushogi 5:00
+will generate one move every 5 minutes.
+
+If two or more arguments are given, they will be used to set tournament
+time controls with the first argument of each pair being the number of
+moves and the second being the total clock time in minutes[:seconds].
+Thus, entering
+.B gnushogi 60 5
+will set
+the clocks for 5 minutes (300 seconds) for the first 60 moves,
+and 
+.B gnushogi 30 3:30
+will allow 3 minutes and 30 seconds for 30 moves.
+
+.B gnushogi 30 5 1 :30
+will allow 5 minutes for the first 30 moves and 30 seconds for each move
+after that.  Up to 4 pairs of controls may be specified.
+
+If no argument is given the program will prompt the user for level of play.
+
+For use with 
+.B xshogi
+see the documentation on that program.
+.SH BOOK
+.PP
+The book
+.I gnushogi.tbk
+consists of a sequence of openings.  An opening begins with a line starting
+with a
+.B #
+, the rest of the line is a comment.  Following this is a series of moves
+in algebraic notation alternating black and white separated by white
+space. A move may have a
+.B ?
+after it indicating this move should never be made in this position.
+Moves are stored as position:move so transpositions between openings
+can take place. 
+.SH HASHFILE
+.PP
+The hashfile if created should be on the order of 4 megabytes or
+.B gnushogi -c 22.
+This file contains positions and moves learned from previous games.  If a
+hashfile is used the computer makes use of the experience it gained in past
+games. Tests run so far show that it plays no worse with the hashfile than
+without, but it is not clear yet whether it provides a real advantage.
+.SH LEGAL MOVES
+.PP
+.B Note:
+Piece letters are determined by the language file.
+What is specified here is the default (English).
+.PP
+Once
+.I gnushogi
+is invoked, the program will display the board and prompt the user
+for a move. To enter a move, use the notation 
+.B 7g7f
+where the first letter-number pair indicates the origin square
+and the second letter-number pair indicates the destination square.
+An alternative is to use the notation 
+.B P7f
+where the first letter indicates the piece type (P,L,N,S,G,B,R,K).
+To promote append a + the type of the new piece to the move, as in 
+.B 2d2c+ 
+or 
+.B P2c+.
+Note that you must use capital letters for the pieces by default.
+.SH "COMMAND-LINE OPTIONS"
+.TP
+.B -a
+Do not search on opponent's time.
+.TP
+.B a
+Do search on opponent's time.
+.TP
+.B -b bookfile
+Use bookfile for opening book.
+.TP
+.B -B binbookfile
+Use binbookfile for binary opening book.
+.TP
+.B -c size
+Create a new HASHFILE. File size is 2^size entries of approximately 65+? bytes.
+.TP
+.B -C
+Use curses-based display mode.
+.TP
+.B -h 
+Do not use hashfile.
+.TP
+.B h 
+Do use hashfile.
+.TP
+.B -l pathname
+Pathname of the loadfile use with
+.BR get
+or
+.BR xget.
+.TP
+.B -L lang
+Use language 
+.I lang from the file 
+.B gnushogi.lang.
+If -L is not specified it uses the first language in the file.
+.TP
+.B -P plylevels
+Number of plys to include in the binbookfile. For generating a binbookfile.
+.TP
+.B -r length
+Rehash length times in searching  entries for position in transposition table.
+.TP
+.B -R
+Use raw text display mode.  This can be used for dumb terminals or for
+systems that don't have curses.
+.TP
+.B -s pathname
+Pathname of the save file to use with the
+.BR save
+command.
+.TP
+.B -S size
+Size of binbookfile for memory based books. For creating a binbookfile.
+.TP
+.B -t
+Show statistics for HASHFILE
+.TP
+.B -T size
+Set the transposition table size to 2^size entries.
+.TP
+.B -v
+Show version and patchlevel.
+.TP
+.B -x value
+Use
+.BR value
+as the evaluation window
+.BR xwndw.
+.TP
+.B -X
+Use xshogi display mode (the default).
+.SH "COMMANDS"
+.PP
+In addition to legal moves, the following commands are available as responses.
+.B Note:
+command names are determined by the 
+.I language
+file and may vary with the implementation. The default language is English.
+.PP
+.B alg
+-- allow algebraic input (not implemented)
+.PP
+.B Awindow
+-- change Alpha window (default score + 90)
+.PP
+.B Bwindow
+-- change Beta window (default score - 90)
+.PP
+.B beep
+-- toggles beeping after each move (default: on).
+.PP
+.B bd
+-- updates the current board position on the display.
+.PP
+.B book
+-- turns off use of the opening library.
+.PP
+.B both
+-- causes the computer to play both sides of a shogi game.
+.PP
+.B black
+-- causes the computer to take the white pieces, if the computer is to move
+first.
+.PP
+.B bsave
+-- saves a game to disk as a book textfile.  
+The program will prompt the user for a file name.
+.PP
+.B gamein
+-- toggles game mode time control. Assumes the time specified for time control
+is the time for a complete game.  Input with the level command should be the
+game time and the expected number of moves in a game.
+.B go
+command must be given.
+.PP
+.B coords
+-- show coordinates on the display (visual only)
+.PP
+.B contempt
+-- allows the value of 
+.I contempt
+to be modified.
+.PP
+.B debug
+--  asks for a piece as color piece, as wb or bn, and shows its calculated value on
+each square.
+.PP
+.B debuglevel
+--  sets level of debugging output if compiled with debug options.
+.PP
+.B depth
+-- allows the user to change the search depth of the program.  The maximum
+depth is 29 ply.  Normally the depth is set to 29 and the computer
+terminates its search based on elapsed time rather than depth.  If depth is
+set to (say) 4 ply, the program will search until all moves have been
+examined to a depth of 4 ply (with extensions up to 11 additional ply for
+sequences of checks and captures).  If you set a maximum time per move and
+also use the depth command, the search will stop at the specified time or
+the specified depth, whichever comes first.
+.PP
+.B easy
+-- toggles easy mode (thinking on opponents time) on and off. The default
+is easy mode ON.  If easy mode is disabled, the keyboard is polled for
+input every so often and when input is seen the search is terminated. It
+may also be terminated with a
+.I sigint.
+.PP
+.B edit
+-- allows the user to set up a board position.
+
+.B  #
+- command will clear the board.
+
+.B  c 
+- toggle piece color. 
+
+.B  .
+- command will exit setup mode.
+
+.B  p3b
+- place a pawn on 3b
+
+.B  p3b+
+- place a promoted pawn on 3b
+
+.B  p*
+- place a pawn to the captured pieces
+
+Pieces are entered by typing a letter (p,l,n,s,g,b,r,k) for
+the piece followed by the coordinate.
+
+The usual warning about the
+.I language file
+applies.
+.PP
+.B exit
+-- exits gnushogi.
+.PP
+.B first
+-- tells the computer to move first. Computer begins searching for a move.
+(same as "go").
+.PP
+.B force
+-- allows the user to enter moves for both
+sides. To get the program to play after a sequence of moves
+has been entered use the 'black' or 'white' commands.
+.PP
+.B get
+-- retrieves a game from disk.  The program will
+prompt the user for a file name.
+.PP
+.B hash
+-- use/don't use hashfile.
+.PP
+.B hashdepth
+-- allows the user to change the minimum depth for using the hashfile and
+the number of moves from the beginning of the game to use it.
+.PP
+.B help
+-- displays a short description of the commands and the current status of options.
+.PP
+.B go
+-- tells the computer to move first. Computer begins searching for a move.
+(same as "first").
+.PP
+.B hint
+-- causes the program to supply the user with its predicted move.
+.PP
+.B level
+-- allows the user to set time controls such as 60 moves in 5 minutes etc.
+In tournament mode, the program will vary the time it takes for each move
+depending on the situation.  If easy mode is disabled (using the 'easy'
+command), the program will often respond with its move immediately, saving
+time on its clock for use later on.
+.PP
+.B list
+-- writes the game moves and some statistics on search depth, nodes, and
+time to the file 'shogi.lst'.
+.PP
+.B material
+-- toggle material flag - draws on no pawns and both sides < rook
+.PP
+.B new
+-- starts a new game.
+.PP
+.B p
+-- evaluates the board and shows the point score for each piece. The total score for
+a position is the sum of these individual piece scores.
+.PP
+.B post
+-- causes the program to display the principal variation and the score
+during the search.  A score of 100 is equivalent to a 1 pawn advantage for
+the computer.
+.PP
+.B quit
+-- exits the game.
+.PP
+.B random
+-- causes the program to randomize its move selection slightly.
+.PP
+.B rcptr
+-- set recapture mode.
+.PP
+.B remove
+-- backout the last level for both sides. Equal to 2 
+.I undo's.
+.PP
+.B reverse
+-- causes the board display to be reversed.  That
+is, the black pieces will now appear at the top of the board.
+.PP
+.B rv
+-- reverse board display.
+.PP
+.B save
+-- saves a game to disk.  The program will prompt the user for a file name.
+.PP
+.B switch
+-- causes the program to switch places with the opponent and begin
+searching.
+.PP
+.B test
+-- performs some speed tests for MoveList and CaptureList generation, and
+ScorePosition position scoring for the current board.
+.PP
+.B time
+-- set computer's time remaining, intended for synchronizing clocks among
+multiple players.
+.PP
+.B tsume
+-- toggle tsume mode. In tsume mode, not all possible moves will be
+generated. If a king is in check, only moves that get the king out of check
+are generated.  If the king is not in check, only moves that give check to
+the opponent's king are generated.
+.PP
+.B undo
+-- undoes the last move whether it was the computer's
+or the human's. You may also type "remove". This is equivalent
+to two "undo"'s (e.g. retract one move for each side).
+.PP
+.B white
+-- causes the computer to take the black pieces, if the computer is to move
+first the
+.B go 
+command must be given.
+.PP
+.B xget
+-- read an 
+.I xshogi
+position file.
+.PP
+.B xsave
+-- save as an 
+.I xshogi
+position file.
+.PP
+.B xwndw
+-- change X window. The window around alpha/beta used to determine whether
+the position should be scored or just estimated.
+.SH BUGS
+.PP
+.fi
+.SH SEE ALSO
+.nf
+xshogi(6)
+.fi
+