]> code.delx.au - gnu-emacs-elpa/blob - TODO
*** no comment ***
[gnu-emacs-elpa] / TODO
1 - Feature work remaining:
2
3 2.0
4 annotations
5 chatting
6 2.x
7 display/database tie-in
8 analysis/highlight tools
9 bughouse/crazyhouse
10
11 ----------------------------------------------------------------------
12
13 - Make the drawing/highlighting code just touch single squares, rather
14 than redrawing the whole board each time (fast though this is,
15 touching single squares is all that's necessary, and it would be
16 even faster)
17
18 - Fix highlighting in chess-plain when chess-plain-spacing is set.
19 chess-coord needs to be applied to a larger area, and also the way
20 highlight locations are found needs to be recalculated.
21
22 - Change all of the highlighting functions to use properties to find
23 out where the highlighting region should begin.
24
25 - Move keyboard shortcutting and mouse selection into their own
26 modules
27
28 ----------------------------------------------------------------------
29
30 - The game should go inactive once I lose by stalemate/checkmate
31
32 - When a clock runs down, indicate this in the modeline, and all the
33 user to call-flag in order to win on time
34
35 - Detect draw/resign/abort/retract, etc., from ICS and common engines
36
37 - in chess-engine-filter and chess-ics-filter, if an error is
38 encountered, skip that line so the same error isn't triggered again
39
40 - SPACE to pass, then try to move (against an engine) fails saying
41 it's not our turn to move
42
43 - Add support for adjournments; also, implement this is such a way
44 that an e-mail or postal game is basically a game that's adjourned
45 after every move; use BBDB if available
46
47 - Allow databases to return a game moniker, which can be used to
48 reference that game again
49
50 - There needs to be much more robustness; it's too easy to get the
51 game into an unplayable state right now
52
53 - Break my dependency on cl
54
55 - Use more asserts throughout the code
56
57 - Read-only mode needs to be more vigorous. There's nothing
58 preventing the user from using M-x commands.
59
60 - Complete chess-pgn-mode's automatic entry
61
62 - Make any game-modifying commands in a display use C-c C-?
63
64 - Use MIME attachments (application/x-chess-pgn) for sending e-mail
65 chess games back and forth.
66
67 - Copy some of ics.el's nicer functionality into chess-ics.el
68
69 - Complete the ICS12 parser, based on Mario's comments
70
71 - Add support for ICS observing
72
73 - Make the mode-line much more informative, with information on who is
74 playing, etc.
75
76 - Use server-side sockets in chess-network, if Emacs supports it
77
78 - Allow ASCII displays to use a separate frame
79
80 - In edit mode, mouse-2 and mouse-3 should provide a drop-down list of
81 pieces the square can be set to. Cursor movement is really not the
82 best for chess-images. I still need to figure out how best to
83 handle cursor-type with that display.
84
85 - Still need to test many areas: position editing
86
87 - Implement engine options; then, in chess-puzzle set the option that
88 tells the engine not to resign.
89
90 - Remote displays are horribly insecure.
91
92 - Resize the chess board on a window resize event, if possible.
93
94 - Add chess-game-strip-annotations, for removing all annotations from
95 a game object
96
97 - Let the user specify a default size for the chess-images display
98
99 - Port image display code to XEmacs
100
101 Training features
102
103 - Allow the opponent to give hints.
104
105 - Add a warning mode that will use the results of an analysis to warn
106 the user (and ask for confirmation) before doing something that
107 might lead to an inferior position.
108
109 - Add a chess tutor program, to teach people how to play chess
110
111 Analysis features
112
113 - Add an engine function for obtaining an evaluation of the current
114 position. Then, allow M-x chess to startup a non-game oriented
115 engine, solely for the purpose of submitting position evaluations,
116 and displaying the result in the modeline. (Also, look at crafty's
117 kibitzing feature).
118
119 - Add a Map command, that will colorize the squares depending on
120 whether they are reachable by either side. Green if reachable by
121 you, Red if by your opponent, and blue if by both. With a prefix
122 argument, colorize only the squares that have pieces on them. This
123 is a stable modes that remains in effect until turned off. It also
124 requires the ability to pass a color to the chessboard highlighting
125 routine.
126
127 - Using gnuplot-mode, allow evaluation trends to be plotted
128
129 - Add an analyze command that will indicate which pieces are defended,
130 how well, which are attacked, which moves would increase
131 defense/attack/both, etc. Basically, everything that can be known
132 about the current board, and one move ahead (on both sides).
133
134 BEFORE FINAL RELEASE
135
136 profile
137 mem profile
138 docstring
139 texi
140 elint
141 checkdoc