summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMario Lang <mlang@delysid.org>2004-03-07 22:15:02 +0000
committerMario Lang <mlang@delysid.org>2004-03-07 22:15:02 +0000
commit397398a87bf155d6713bf597a1931afa7c7a0e08 (patch)
tree7566edd3f94772c5cb2c28be7886af28fdb8038c
parentb3dec251cfbff83c26d8312ff1d5260826a4dfc8 (diff)
laptop sync
-rw-r--r--ChangeLog11
-rw-r--r--PLAN28
-rw-r--r--README42
-rw-r--r--chess-pgn.el5
4 files changed, 52 insertions, 34 deletions
diff --git a/ChangeLog b/ChangeLog
index 5e085bc..12d33d8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2004-03-06 root <root@debian>
+
+ * README: Rephrase the intro, and add a HISTORY section
+ to document the maintainership change.
+
+ * PLAN: Remove chess-input entry, which was bogus.
+
+ * chess-pgn.el (chess-pgn-read-game): Fix database-index calculation.
+ Now `chess-pgn-show-position' should work as expected in multiple
+ game PGN files.
+
2004-03-01 Mario Lang <mlang@delysid.org>
* chess-ply.el 1.46
diff --git a/PLAN b/PLAN
index 8b1fbac..8837eb8 100644
--- a/PLAN
+++ b/PLAN
@@ -21,31 +21,6 @@ chess-display
it does so on the last ply (per display)
- need a "save this game to a PGN file/database" command
-chess-input
-- In the following game, it wouldn't let me type "rh" to move Rh5,
- when it was the only possible move
-
-[Event "ICS unrated blitz match"]
-[Site "64.71.131.140"]
-[Date "2002.06.05"]
-[Round "-"]
-[White "realmadrid"]
-[Black "jwiegley"]
-[Result "0-1"]
-[WhiteElo "0"]
-[BlackElo "1128"]
-[TimeControl "60+6"]
-
-1. e4 c5 2. e5 d6 3. f4 dxe5 4. fxe5 Nc6 5. Qh5 g6 6. Qg5 Bg7 7. Nf3 Bf5 8.
-d3 Nxe5 9. Nxe5 Bxe5 10. Qe3 Qa5+ 11. c3 Qc7 12. d4 cxd4 13. cxd4 Bxh2 14.
-Bb5+ Bd7 15. Bxd7+ Kxd7 16. Qh3+ e6 17. Rxh2 Qxc1+ 18. Kf2 Qxb2+ 19. Kg1
-Qxa1 20. Qb3 Qxd4+ 21. Kf1 Qf4+ 22. Kg1 Ne7 23. Qxb7+ Kd6 24. g3 Qe3+ 25.
-Rf2 Qxg3+ 26. Rg2 Qe1+ 27. Kh2 Rhb8 28. Rd2+ Qxd2+ 29. Nxd2 Rxb7 30. Kg3
-Rb2 31. Ne4+ Kd5 32. Nf6+ Ke5 33. Nxh7 Rxa2 34. Ng5 Nf5+ 35. Kg4 Kf6 36.
-Ne4+ Ke7 37. Kg5 Rg2+ 38. Kf4 Rh8 39. Ke5 Rh5 40. Nf6 Ng7+ 41. Nxh5 gxh5
-42. Kf4 h4 43. Kf3 h3 44. Kf4 h2 45. Ke3 h1=Q 46. Kd3 Qh4 47. Kc3 Rg3+ 48.
-Kb2 Qh2+ 49. Ka1 Rg1# {realmadrid checkmated} 0-1
-
chess-images
- if chess-display-popup is nil, and I resize the board, it merely
deletes the frame and never shows it again
@@ -65,6 +40,9 @@ chess-network
chess-ply
- detect games drawn by three-fold repetition and the 50 move rule
+ (Note, FIDE rules define that a draw must be claimed by one
+ of the opponents, so we do not really need to do this on
+ every move, just when a draw is requested.)
chess-pgn
- when saving a full game to the clipboard, it shouldn't need to save
diff --git a/README b/README
index c621fd9..09ca7e0 100644
--- a/README
+++ b/README
@@ -1,14 +1,40 @@
Welcome to chess.el, a client and library for playing Chess from
Emacs.
-chess.el does not know how to play chess against you. While the
-library does know all legal moves, there is no "thinking" module. For
-this, you must download one of the publically available chess engines,
-such as gnuchess, crafty or phalanx. You will find all of these
-sufficiently challenging, I'm sure. Once they are installed, chess.el
-will use them, provided the locations of the binaries is on your PATH.
-
-John Wiegley <johnw@gnu.org>
+chess.el is an Emacs Lisp library and several clients on top of the underlying
+library functionality for performing various activities related
+to the game of chess.
+You can play against an external chess program such as gnuchess,
+crafty, phalanx or sjeng. All of them are publically available,
+and chess.el will automatically detect which one
+you have installed, provided they have standard executable
+program names, and are in a located in a directory which
+is part of the PATH. See the customisable variable
+`chess-default-engine'.
+
+You can also play against another human or computer over the internet
+(through a direct Emacs-to-Emacs connection, or
+on one of the Internet Chess Servers like freechess.org or
+chessclub.com), or even against a very simple chess thinking
+module implemented in pure Emacs Lisp.
+
+chess.el also provides a mode for editing Portable Game Notation (PGN
+files.
+
+To improve your chessaility, you might also like to have
+a look at chess-puzzle, which allows you to solve
+chess puzzle collections (in PGN or EPD format) against
+one of the engines you have installed.
+
+HISTORY
+
+chess.el started out as a single file project with
+version 1.0 by John Wiegley <johnw@gnu.org>. Version 2.0 is a major
+rewrite and reorganisation of the original code, also done
+by John Wiegley. In the end of 2003, John did not
+have a lot of time to finish all the various aspects of version 2.0,
+and maintainership was given to Mario Lang <mlang@delysid.org>.
+
LAYOUT
diff --git a/chess-pgn.el b/chess-pgn.el
index 796187c..dde8d68 100644
--- a/chess-pgn.el
+++ b/chess-pgn.el
@@ -4,6 +4,9 @@
;;
(require 'chess-algebraic)
+(require 'chess-fen)
+(require 'chess-game)
+(require 'chess-message)
(defvar chess-pgn-fill-column 60)
@@ -329,7 +332,7 @@ PGN text."
(setq last-location locations
locations (cdr locations))))
(setq index (if last-location
- (1- (length last-location))
+ (- (length chess-file-locations) (length last-location))
0))
(when (or (null chess-pgn-current-game)
(/= index (chess-game-data chess-pgn-current-game