summaryrefslogtreecommitdiff
path: root/PLAN
blob: 5d3e5dd624c8611f0ca8eda2501db9dd9cc07f5f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
polish: chess-chat, chess-kibitz
translate: chess-german

chess
- clean up this code; let people override the chess-default-* lists

chess-pos
- in chess-pos-can-castle, the return value should be nil, or the
  position of the rook to be used when castling on that side
- create chess-pos-legal-move, which returns non-nil if a specific
  move can be made; this makes the castling code much easier to write

chess-ply
- When creating the next position, set the annotations to point to the
  keywords of the ply that led to that position; in fact, just point
  to the creating ply!
- Add :nag, :rav, :ann and :next-pos keywords to a ply
- Thus there will be a mirror set of chess-pos-has-keyword, etc.,
  functions
- Need to detect games drawn by three-fold repetition
- Rename chess-ply-create-castle to chess-ply-castling-changes

chess-display
- there is no way to call flag right now
- invert the mode line to show the side on move?

chess-engine
- add a `force' event for forcing an engine to move

chess-ics
- detect draw/retract, etc.
- add support for ICS observing

chess-clock
- when a clock runs down, allow the user to call-flag in order to win
  on time; note: the user should be allowed to try anyway, in case our
  clock has become out-of-sync with the server's

chess-images
- in a generic emacs, with a light background, there are white lines
  in wierd places on the chessboard

			 BEFORE FINAL RELEASE

  use more asserts throughout the code
  break my dependency on cl

  profile
  mem profile

  elint
  docstring/texi
  checkdoc