Initial commit based on GNU Shogi 1.2 patchlevel 3.
[gnushogi.git] / doc / gnushogi.1
1 .TH gnushogi 6
2 .SH NAME
3 gnushogi \- Shogi
4 .SH SYNOPSIS
5 .B gnushogi
6 [
7 .B [[-]a] 
8 .B [-b bookfile] 
9 .B [-B binbookfile] 
10 .B [-h langfile] 
11 .B [-L langfile] 
12 .B [-r length]
13 .B [-s pathname] [-l pathname] 
14 .B [-S binbooksize]
15 .B [-t] [-c size] 
16 .B [-T size]
17 .B [-v]
18 .B [-x]
19 .B arg1 arg2
20 ]
21 .SH DESCRIPTION
22 .I Gnushogi
23 plays a game of japanese chess (shogi) against the user or it plays against itself.
24 .PP
25 At startup 
26 .I Gnushogi
27 reads the
28 .I binbook
29 file if it is present. It then looks for a 
30 .I book
31 file. If it is present it adds its contents to the 
32 .I binbook
33 data. If the 
34 .I binbook
35 file is writable a new combined
36 .I binbook
37 file is written.
38
39 .PP
40 .I Gnushogi
41 is an updated version of the gnuchess program.
42 It has a simple alpha-numeric board display,
43 or it can be compiled for use with the 
44 .B chesstool 
45 program on a SUN workstation or with the 
46 .B xshogi 
47 program under X-windows.
48 The program gets its opening moves from the file 
49 .B gnushogi.book 
50 which is located in a directory specified in the makefile.
51 To invoke the program type:
52 .TP
53 .B gnushogi
54 - simple curses based version
55 .TP
56 .B gnuchessx 
57 - xshogi compatible version
58 .SH TIME CONTROLS
59 .PP
60 If one argument is given, it is the search time per move in 
61 [minutes:]seconds.
62 So 
63 .B gnushogi 30
64 will generate one move every 30 seconds, while
65 .B gnushogi 5:00
66 will generate one move every 5 minutes.
67
68 If two or more arguments are given, they will be used to set tournament
69 time controls with the first argument of each pair being the number of moves and the second
70 being the total clock time in minutes[:seconds].  Thus, entering 
71 .B gnushogi 60 5
72 will set
73 the clocks for 5 minutes (300 seconds) for the first 60 moves,
74 and 
75 .B gnushogi 30 3:30
76 will allow 3 minutes and 30 seconds for 30 moves.
77
78 .B gnushogi 30 5 1 :30
79 will allow 5 minutes for the first 30 moves and 30 seconds for each move after that.
80 Up to 4 pairs of controls may be specified.
81
82 If no argument is given the program will prompt the user for level of play.
83
84 For use with 
85 .B xshogi
86 , see the documentation on this programs.
87 .SH BOOK
88 .PP
89 The book
90 .I gnushogi.book
91 consists of a sequence of openings.
92 An opening begins with a line starting with a 
93 .B !
94 , the rest of the line is comments.
95 Following this is a series of moves in algebraic notation alternating black
96 and white separated by white space. A move may have a 
97 .B ?
98 after it indicating this move should never be made in this position.
99 Moves are stored as position:move so transpositions between openings
100 can take place. 
101 .SH HASHFILE
102 .PP
103 The hashfile if created should be on the order of 4 megabytes or
104 .B gnushogi -c 22.
105 This file contains positions and moves learned from previous games. 
106 If a hashfile is used the computer makes use of the experience it
107 gained in past games. Tests run so far show that it plays no worse
108 with the hashfile than without, but it is not clear yet whether
109 it provides a real advantage. 
110 .SH LEGAL MOVES
111 .PP
112 .B Note:
113 Piece letters are determined by the language file.
114 What is specified here is the default English.
115 .PP
116 Once
117 .I gnushogi
118 is invoked, the program will display the board and prompt the user
119 for a move. To enter a move, use the notation 
120 .B 7g7f
121 where the first letter-number pair indicates the origination square
122 and the second letter-number pair indicates the destination square.
123 An alternative is to use the notation 
124 .B p7f
125 where the first letter indicates the piece type (p,l,n,s,g,b,r,k).
126 To promote append a + the type of the new piece to the move, as in 
127 .B 2d2c+ 
128 or 
129 .B P2c+.
130 .SH "FUNCTION LETTERS"
131 .TP
132 .B -L lang
133 Use language 
134 .I lang from the file 
135 .B gnushogi.lang.
136 If -L is not specified it uses the first language in the file.
137 .TP
138 .B -a
139 Do not search on opponents time.
140 .TP
141 .B a
142 Do search on opponents time.
143 .TP
144 .B -b bookfile
145 Use bookfile for opening book.
146 .TP
147 .B -B binbookfile
148 Use binbookfile for binary opening book.
149 .TP
150 .B -S size
151 Size of binbookfile for memory based books. For creating a binbookfile.
152 .TP
153 .B -P plylevels
154 Number of plys to include in the binbookfile. For generating a binbookfile.
155 .TP
156 .B -c size
157 Create a new HASHFILE. File size is 2^size entries of approximately 65+? bytes.
158 .TP
159 .B -h 
160 Do not use hashfile.
161 .TP
162 .B h 
163 Do use hashfile.
164 .TP
165 .B -l pathname
166 Pathname of the loadfile use with the
167 .BR get
168 or
169 .BR xget.
170 .TP
171 .B -r length
172 Rehash length times in searching  entries for position in transposition table.
173 .TP
174 .B -s pathname
175 Pathname of the save file to use with the
176 .BR save
177 command.
178 .TP
179 .B -t
180 Show statistics for HASHFILE
181 .TP
182 .B -T size
183 Set the transposition table size to 2^size entries.
184 .TP
185 .B -v
186 Show version and patchlevel.
187 .TP
188 .B -x value
189 Use
190 .BR value
191 as the evaluation window
192 .BR xwndw.
193 .SH COMMANDS
194 .PP
195 In addition to legal moves, the following commands are available as responses.
196 .B Note:
197 command names are determined by the 
198 .I language
199 file and may vary with the implementation. This is default English.
200 .PP
201 .B alg
202 -- allow algrbraic input (not implemented)
203 .PP
204 .B Awindow
205 -- change Alpha window (default score + 90)
206 .PP
207 .B Bwindow
208 -- change Beta window (default score - 90)
209 .PP
210 .B beep
211 -- causes the program to beep after each move.
212 .PP
213 .B bd
214 -- updates the current board position on the display.
215 .PP
216 .B book
217 -- turns off use of the opening library.
218 .PP
219 .B both
220 -- causes the computer to play both sides of a shogi game.
221 .PP
222 .B black
223 -- causes the computer to take the white pieces, if the computer is to move first the 
224 .PP
225 .B bsave
226 -- saves a game to disk as a book textfile.  
227 The program will prompt the user for a file name.
228 .PP
229 .B gamein
230 -- toggles game mode time control. Assumes the time specified for time control
231 is the time for a complete game. Input with the level command should be the game time
232 and the expected number of moves in a game.
233 .B go
234 command must be given.
235 .PP
236 .B coords
237 -- show coordinates on the display (visual only)
238 .PP
239 .B contempt
240 -- allows the value of 
241 .I contempt
242 to be modified.
243 .PP
244 .B debug
245 --  asks for a piece as color piece, as wb or bn, and shows its calculated value on
246 each square.
247 .PP
248 .B debuglevel
249 --  sets level of debugging output if compiled with debug options.
250 .PP
251 .B depth
252 -- allows the user to change the
253 search depth of the program.  The maximum depth is 29 ply.
254 Normally the depth is set to 29 and the computer terminates
255 its search based on elapsed time rather than depth.
256 If depth is set to (say) 4 ply,
257 the program will search until all moves
258 have been examined to a depth of 4 ply (with extensions up
259 to 11 additional ply for sequences of checks and captures). 
260 If you set a maximum time per move and also use the depth command,
261 the search will stop at the specified time or the specified depth, whichever
262 comes first.
263 .PP
264 .B easy
265 -- toggles easy mode (thinking on opponents time)
266 on and off. The default is easy mode ON.  If easy mode is disabled,
267 the keyboard is polled for input every so often and when input is
268 seen the search is terminated. It may also be terminated with a 
269 .I sigint.
270 .PP
271 .B edit
272 -- allows the user to set up a board position.
273
274 .B      #
275 - command will clear the board.
276
277 .B      c 
278 - toggle piece color. 
279
280 .B      .
281 - command will exit setup mode.
282
283 .B      p3b
284 - place a pawn on 3b
285
286 .B      p3b+
287 - place a promoted pawn on 3b
288
289 .B      p*
290 - place a pawn to the captured pieces
291
292 Pieces are entered by typing a letter (p,l,n,s,g,b,r,k) for
293 the piece followed by the coordinate.
294
295 The usual warning about the
296 .I language file
297 applies.
298 .PP
299 .B exit
300 -- exits gnushogi.
301 .PP
302 .B first
303 -- tells the computer to move first. Computer begins searching for a move.
304 (same as "go").
305 .PP
306 .B force
307 -- allows the user to enter moves for both
308 sides. To get the program to play after a sequence of moves
309 has been entered use the 'black' or 'white' commands.
310 .PP
311 .B get
312 -- retrieves a game from disk.  The program will
313 prompt the user for a file name.
314 .PP
315 .B hash
316 -- use/don't use hashfile.
317 .PP
318 .B hashdepth
319 -- allows the user to change the minimum depth for using the hashfile and the number of moves from the
320 begining of the game to use it.
321 .PP
322 .B help
323 -- displays a short description of the commands and the current status of options.
324 .PP
325 .B go
326 -- tells the computer to move first. Computer begins searching for a move.
327 (same as "first").
328 .PP
329 .B hint
330 -- causes the program to supply the user with its predicted move.
331 .PP
332 .B level
333 -- allows the user to set time controls such as
334 60 moves in 5 minutes etc.  In tournament mode, the program will
335 vary the time it takes for each
336 move depending on the situation.  If easy mode is disabled (using
337 the 'easy' command), the program
338 will often respond with its move immediately, saving time on
339 its clock for use later on.
340 .PP
341 .B list
342 -- writes the game moves and some statistics
343 on search depth, nodes, and time to the file 'chess.lst'.
344 .PP
345 .B material
346 -- toggle material flag - draws on no pawns and both sides < rook
347 .PP
348 .B new
349 -- starts a new game.
350 .PP
351 .B p
352 -- evaluates the board and shows the point score for each piece. The total score for
353 a position is the sum of these individual piece scores.
354 .PP
355 .B post
356 -- causes the program to display the principle
357 variation and the score during the search.  A score of
358 100 is equivalent to a 1 pawn advantage for the computer.
359 .PP
360 .B quit
361 -- exits the game.
362 .PP
363 .B random
364 -- causes the program to randomize its move
365 selection slightly.
366 .PP
367 .B rcptr
368 -- set recapture mode.
369 .PP
370 .B remove
371 -- backout the last level for both sides. Equal to 2 
372 .I undo's.
373 .PP
374 .B reverse
375 -- causes the board display to be reversed.  That
376 is, the black pieces will now appear at the top of the board.
377 .PP
378 .B rv
379 -- reverse board display.
380 .PP
381 .B save
382 -- saves a game to disk.  The program will prompt
383 the user for a file name.
384 .PP
385 .B switch
386 -- causes the program to switch places with
387 the opponent and begin searching.
388 .PP
389 .B test
390 -- performs some speed tests for MoveList and CaptureList generation, and ScorePosition position scoring
391 for the current board. 
392 .PP
393 .B time
394 -- set computers time remaining, intended for synchronizing clocks among multiple players.
395 .PP
396 .B tsume
397 -- toggle tsume mode. In tsume mode, not all possible moves will be
398 generated. If a king is in check, only moves that makes the king not being
399 in check are generated. If the king is not in check, only moves that give
400 check to the opponents king are generated. 
401 .PP
402 .B undo
403 -- undoes the last move whether it was the computer's
404 or the human's. You may also type "remove". This is equivalent
405 to two "undo's" (e.g. retract one move for each side).
406 .PP
407 .B white
408 -- causes the computer to take the black pieces, if the computer is to move first the 
409 iB go
410 command must be given.
411 .PP
412 .B xget
413 -- read an 
414 .Ixshogi
415 position file.
416 .PP
417 .B xsave
418 -- save as an 
419 .Ixshogi
420 position file.
421 .PP
422 .B xwndw
423 -- change X window. The window around alpha/beta used to determine whether the position
424 should be scored or just estimated.
425 .SH BUGS
426 .PP
427 .fi
428 .SH SEE ALSO
429 .nf
430 xshogi(6)
431 .fi
432