mlang pushed a commit to branch externals/chess in repository elpa. commit c8a2a9cfab5d866722523a9810f72393f0866549 Author: Mario Lang <ml...@delysid.org> Date: Thu Jun 5 00:23:14 2014 +0200
* doc/chess.texi (Position coordinates): Document `chess-next-index' and related constants. (The sought game display): Update as the mentioned mode name has changed. * chess-ics.el (chess-ics): Add custom-manual link. * chess-plain.el (chess-plain): Add custom-manual link. --- ChangeLog | 12 ++++ chess-ics.el | 3 +- chess-plain.el | 3 +- chess.info | 200 +++++++++++++++++++++++++++++++++++-------------------- doc/chess.texi | 75 +++++++++++++++++---- 5 files changed, 204 insertions(+), 89 deletions(-) diff --git a/ChangeLog b/ChangeLog index 14c3abc..91b0ff8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2014-06-05 Mario Lang <ml...@delysid.org> + + * doc/chess.texi (Position coordinates): Document `chess-next-index' + and related constants. + (The sought game display): Update as the mentioned mode name has changed. + +2014-06-04 Mario Lang <ml...@delysid.org> + + * chess-ics.el (chess-ics): Add custom-manual link. + + * chess-plain.el (chess-plain): Add custom-manual link. + 2005-06-27 John Wiegley <jo...@newartisans.com> * chess-ics.el (chess-ics-sought-add): Added this routine to diff --git a/chess-ics.el b/chess-ics.el index f260e06..0e44187 100644 --- a/chess-ics.el +++ b/chess-ics.el @@ -44,7 +44,8 @@ (defgroup chess-ics nil "Engine for interacting with Internet Chess Servers." - :group 'chess-engine) + :group 'chess + :link '(custom-manual "(chess)Internet Chess Servers")) (defcustom chess-ics-server-list '(("freechess.org" 5000) ("chess.unix-ag.uni-kl.de" 5000) diff --git a/chess-plain.el b/chess-plain.el index 7dd66f1..d4cab93 100644 --- a/chess-plain.el +++ b/chess-plain.el @@ -35,7 +35,8 @@ (defgroup chess-plain nil "A minimal, customizable ASCII display." - :group 'chess-display) + :group 'chess-display + :link '(custom-manual "(chess)Plain ASCII diagram displays")) (defcustom chess-plain-border-style [?+ ?- ?+ ?| ?| ?+ ?- ?+] "If non-nil, a vector describing the border characters." diff --git a/chess.info b/chess.info index aa0f689..9fb7196 100644 --- a/chess.info +++ b/chess.info @@ -133,11 +133,53 @@ two conversion functions: -- Function: chess-index-to-coord index Convert the chess position INDEX into a coord string. - There is also one helper function for iterative changes of an index: + For fast manipulation of chess position indices, the following +constants and functions are provided: - -- Function: chess-incr-index index rank-move file-move - Create a new INDEX from an old one, by adding RANK-MOVE and - FILE-MOVE. + For queens and rooks: + + -- Constant: chess-direction-north + Signify one step north, as seen from the perspective of the white + player. + + -- Constant: chess-direction-east + Signify one step east, as seen from the perspective of the white + player. + + -- Constant: chess-direction-south + Signify one step south, as seen from the perspective of the white + player. + + -- Constant: chess-direction-west + Signify one step west, as seen from the perspective of the white + player. + + For queens and bishops: + + -- Constant: chess-direction-northeast + Signify one step northeast, as seen from the perspective of the + white player. + + -- Constant: chess-direction-southeast + Signify one step southeast, as seen from the perspective of the + white player. + + -- Constant: chess-direction-southwest + Signify one step southwest, as seen from the perspective of the + white player. + + -- Constant: chess-direction-northwest + Signify one step northwest, as seen from the perspective of the + white player. + + -- Function: chess-next-index index direction + Create a new INDEX from an old one, by advancing it into DIRECTION. + If the resulting index is not valid, nil is returned. + + Due to the underlying technique used to efficiently detect off-board +squares, a direction specifier should at most do two steps in any +direction. Directions can be combined, so that '(* +chess-direction-north 2)' will give a typical initial white pawn push. File: chess.info, Node: Position details, Next: Annotations, Prev: Position coordinates, Up: Positions @@ -1235,9 +1277,9 @@ File: chess.info, Node: Internet Chess Servers, Next: Concept Index, Prev: En Based on the services provided above, there is also a speical mode for communication with Internet Chess Servers. - ON an Internet Chess Server you can seek to play against other human + On an Internet Chess Server you can seek to play against other human or computer players, observe other games being player or examined, play -tournaments, chat with fellow chess players, participate in a team game, +tournaments, chat with fellow chess players, participate in team games, or do various other interesting chess related things. A default set of well known servers is defined in the following @@ -1267,6 +1309,11 @@ To open a new connection to an Internet Chess Server, use: password-or-filename helper &rest helper-args Connect to an Internet Chess Server. + Internet Chess Server support is a derivative of Comint mode, a +general-purpose mode for communicating with interactive subprocesses. A +history of previously entered commands at the ICS prompt is available +with 'M-p' and 'M-n'. See COMINT-MODE-MAP. + File: chess.info, Node: Seeking an opponent for a new game, Next: The sought game display, Prev: Connecting to a server, Up: Internet Chess Servers @@ -1285,22 +1332,21 @@ File: chess.info, Node: The sought game display, Prev: Seeking an opponent for =========================== There is a special mode for displaying games sought by other users on an -Internet Chess Server. Provided you didn't turn off seek ads manually -(for instance by setting the seek variable to 0 (off) on the ICS server -by issueing "set seek 0"), the first seek advertisment automatically -pops up a new window which is in 'chess-ics-sought-mode'. +Internet Chess Server. Provided you didn't turn off seek advertisments +manually (for instance by setting the seek variable to 0 (off) on the +ICS server by issueing "set seek 0"), the first seek advertisment +automatically pops up a new window which is in 'chess-ics-ads-mode', a +derivative of 'tabulated-list-mode'. - -- Function: chess-ics-sought-mode + -- Function: chess-ics-ads-mode A mode for displaying ICS game seek advertisments. - This mode runs the hook 'chess-ics-sought-mode-hook', as the final + This mode runs the hook 'chess-ics-ads-mode-hook', as the final step during initialization. key binding -- ----- - RET chess-ics-sought-accept SPC - chess-ics-sought-toggle-sort-direction ? describe-mode s - chess-ics-sought-toggle-sort-state <mouse-2> + ? describe-mode RET chess-ics-sought-accept <mouse-2> chess-ics-sought-accept In this buffer, use mouse-2 or 'RET' on a line to accept that @@ -1335,6 +1381,14 @@ Function and Variable Index * chess-database-query: Querying Databases. (line 12) * chess-database-read: Querying Databases. (line 9) * chess-database-read-only-p: Modifying Databases. (line 6) +* chess-direction-east: Position coordinates. (line 37) +* chess-direction-north: Position coordinates. (line 33) +* chess-direction-northeast: Position coordinates. (line 51) +* chess-direction-northwest: Position coordinates. (line 63) +* chess-direction-south: Position coordinates. (line 41) +* chess-direction-southeast: Position coordinates. (line 55) +* chess-direction-southwest: Position coordinates. (line 59) +* chess-direction-west: Position coordinates. (line 45) * chess-display-active-p: Generic display manipulation functions. (line 12) * chess-display-clear-board: Generic display manipulation functions. @@ -1395,17 +1449,17 @@ Function and Variable Index * chess-game-to-pgn: PGN notation. (line 10) * chess-ics: Connecting to a server. (line 8) +* chess-ics-ads-mode: The sought game display. + (line 13) * chess-ics-server-list: Internet Chess Servers. (line 17) -* chess-ics-sought-mode: The sought game display. - (line 12) * chess-ics1-separate-frame: ICS1 style ASCII displays. (line 6) -* chess-incr-index: Position coordinates. (line 30) * chess-index-file: Position coordinates. (line 13) * chess-index-rank: Position coordinates. (line 10) * chess-index-to-coord: Position coordinates. (line 25) * chess-legal-plies: Creating plies. (line 16) +* chess-next-index: Position coordinates. (line 67) * chess-pgn-insert-plies: PGN notation. (line 15) * chess-pgn-to-game: PGN notation. (line 6) * chess-pgn-visualize: PGN mode. (line 6) @@ -1483,60 +1537,60 @@ Node: The chess.el library1291 Node: Positions1600 Node: Creating positions2685 Node: Position coordinates3456 -Node: Position details4599 -Node: Annotations9052 -Node: FEN notation9394 -Node: EPD notation10891 -Node: Operations12400 -Node: Opcode "acd" analysis count depth13374 -Node: Opcode "acn" analysis count nodes13728 -Node: Opcode "acs" analysis count seconds14253 -Node: Opcode "am" avoid move(s)14773 -Node: Opcode "bm" best move(s)15214 -Node: Plies15609 -Node: Creating plies16800 -Node: Ply details17984 -Node: The "next" position18464 -Node: Algebraic notation18726 -Node: Variations20154 -Node: Creating variations21282 -Node: Variation positions21590 -Node: Varation plies22191 -Node: Making a move in a variation22632 -Node: Games23207 -Node: Creating games24893 -Node: Game tags25334 -Node: Game positions25941 -Node: Game plies26522 -Node: Making a move26791 -Node: PGN notation27218 -Node: PGN mode27968 -Node: Collections28229 -Node: Opening Databases29030 -Node: Querying Databases29414 -Node: Modifying Databases30040 -Node: Finalising Databases30312 -Node: Database Modules30487 -Node: chess-file30781 -Node: chess-scid31423 -Node: Modules31660 -Node: Chessboard displays38409 -Node: Generic display manipulation functions39037 -Node: Plain ASCII diagram displays41962 -Node: ICS1 style ASCII displays43407 -Node: Graphical displays43711 -Node: Engines43865 -Node: Common functions44443 -Node: Crafty45483 -Node: Gnu Chess45598 -Node: Phalanx45710 -Node: Sjeng45817 -Node: Internet Chess Servers45902 -Node: Connecting to a server46822 -Node: Seeking an opponent for a new game47243 -Node: The sought game display47695 -Node: Concept Index48721 -Node: Function and Variable Index48964 -Node: Key Index59579 +Node: Position details5984 +Node: Annotations10437 +Node: FEN notation10779 +Node: EPD notation12276 +Node: Operations13785 +Node: Opcode "acd" analysis count depth14759 +Node: Opcode "acn" analysis count nodes15113 +Node: Opcode "acs" analysis count seconds15638 +Node: Opcode "am" avoid move(s)16158 +Node: Opcode "bm" best move(s)16599 +Node: Plies16994 +Node: Creating plies18185 +Node: Ply details19369 +Node: The "next" position19849 +Node: Algebraic notation20111 +Node: Variations21539 +Node: Creating variations22667 +Node: Variation positions22975 +Node: Varation plies23576 +Node: Making a move in a variation24017 +Node: Games24592 +Node: Creating games26278 +Node: Game tags26719 +Node: Game positions27326 +Node: Game plies27907 +Node: Making a move28176 +Node: PGN notation28603 +Node: PGN mode29353 +Node: Collections29614 +Node: Opening Databases30415 +Node: Querying Databases30799 +Node: Modifying Databases31425 +Node: Finalising Databases31697 +Node: Database Modules31872 +Node: chess-file32166 +Node: chess-scid32808 +Node: Modules33045 +Node: Chessboard displays39794 +Node: Generic display manipulation functions40422 +Node: Plain ASCII diagram displays43347 +Node: ICS1 style ASCII displays44792 +Node: Graphical displays45096 +Node: Engines45250 +Node: Common functions45828 +Node: Crafty46868 +Node: Gnu Chess46983 +Node: Phalanx47095 +Node: Sjeng47202 +Node: Internet Chess Servers47287 +Node: Connecting to a server48206 +Node: Seeking an opponent for a new game48882 +Node: The sought game display49334 +Node: Concept Index50310 +Node: Function and Variable Index50553 +Node: Key Index61752 End Tag Table diff --git a/doc/chess.texi b/doc/chess.texi index 29f7b62..f9effd8 100644 --- a/doc/chess.texi +++ b/doc/chess.texi @@ -207,14 +207,57 @@ Convert a @var{coord} string into an index value. Convert the chess position @var{index} into a coord string. @end defun -There is also one helper function for iterative changes of an index: +For fast manipulation of chess position indices, the following +constants and functions are provided: -@c lispfun chess-incr-index +For queens and rooks: -@defun chess-incr-index index rank-move file-move -Create a new @var{index} from an old one, by adding @var{rank-move} and @var{file-move}. +@defvr Constant chess-direction-north +Signify one step north, as seen from the perspective of the white player. +@end defvr + +@defvr Constant chess-direction-east +Signify one step east, as seen from the perspective of the white player. +@end defvr + +@defvr Constant chess-direction-south +Signify one step south, as seen from the perspective of the white player. +@end defvr + +@defvr Constant chess-direction-west +Signify one step west, as seen from the perspective of the white player. +@end defvr + +For queens and bishops: + +@defvr Constant chess-direction-northeast +Signify one step northeast, as seen from the perspective of the white player. +@end defvr + +@defvr Constant chess-direction-southeast +Signify one step southeast, as seen from the perspective of the white player. +@end defvr + +@defvr Constant chess-direction-southwest +Signify one step southwest, as seen from the perspective of the white player. +@end defvr + +@defvr Constant chess-direction-northwest +Signify one step northwest, as seen from the perspective of the white player. +@end defvr + +@c lispfun chess-next-index + +@defun chess-next-index index direction +Create a new @var{index} from an old one, by advancing it into @var{direction}. +If the resulting index is not valid, nil is returned. @end defun +Due to the underlying technique used to efficiently detect off-board squares, +a direction specifier should at most do two steps in any direction. +Directions can be combined, so that @code{(* chess-direction-north 2)} +will give a typical initial white pawn push. + @node Position details, Annotations, Position coordinates, Positions @subsection Position details @@ -1488,9 +1531,9 @@ event handler can take care of the data. Based on the services provided above, there is also a speical mode for communication with Internet Chess Servers. -ON an Internet Chess Server you can seek to play against other +On an Internet Chess Server you can seek to play against other human or computer players, observe other games being player or examined, -play tournaments, chat with fellow chess players, participate in a team game, +play tournaments, chat with fellow chess players, participate in team games, or do various other interesting chess related things. A default set of well known servers is defined in the following variable: @@ -1519,6 +1562,11 @@ To open a new connection to an Internet Chess Server, use: Connect to an Internet Chess Server. @end defun +Internet Chess Server support is a derivative of Comint mode, +a general-purpose mode for communicating with interactive subprocesses. +A history of previously entered commands at the ICS prompt is +available with @kbd{M-p} and @kbd{M-n}. See @var{comint-mode-map}. + @node Seeking an opponent for a new game, The sought game display, Connecting to a server, Internet Chess Servers @section Seeking an opponent for a new game @@ -1531,26 +1579,25 @@ to interested people. @section The sought game display There is a special mode for displaying games sought by other users -on an Internet Chess Server. Provided you didn't turn off seek ads +on an Internet Chess Server. Provided you didn't turn off seek advertisments manually (for instance by setting the seek variable to 0 (off) on the ICS server by issueing "set seek 0"), the first seek advertisment -automatically pops up a new window which is in `chess-ics-sought-mode'. +automatically pops up a new window which is in `chess-ics-ads-mode', a +derivative of `tabulated-list-mode'. -@c lispfun chess-ics-sought-mode +@c lispfun chess-ics-ads-mode -@defun chess-ics-sought-mode +@defun chess-ics-ads-mode A mode for displaying @var{ics} game seek advertisments. -This mode runs the hook `chess-ics-sought-mode-hook', as the final step +This mode runs the hook `chess-ics-ads-mode-hook', as the final step during initialization. key binding --- ------- -@var{ret} chess-ics-sought-accept -@var{spc} chess-ics-sought-toggle-sort-direction ? describe-mode -s chess-ics-sought-toggle-sort-state +@var{ret} chess-ics-sought-accept <mouse-2> chess-ics-sought-accept