]> code.delx.au - gnu-emacs-elpa/blob - TODO
Updated the TODO file.
[gnu-emacs-elpa] / TODO
1 EMACS-CHESS -*- mode: org; fill-column: 78 -*-
2
3 #+STARTUP: overview
4 #+ARCHIVE: TODO-OLD::
5 #+SEQ_TODO: TODO(@) STARTED(@) WAITING(@) DELEGATED(@) | DONE(@) DEFERRED(@) CANCELLED(@) WONTFIX(@) WORKSFORME(@) INVALID(@) DUPLICATE(@) NOTE
6 #+TAGS: FEATURE(f) DOCS(d) BUILD(b)
7 #+CATEGORY: Chess
8
9 * TODO Create a better error hierarchy :FEATURE:
10 Instead of using (error), we should be throwing specialized signals that
11 indicate whether it's a problem with a ply, a position, a move, etc. And
12 then this data object should be included with the error.
13 :PROPERTIES:
14 :UUID: 323563C6-2A99-4B01-A29B-BEB09166C103
15 :END:
16 [2008-08-31 Sun]
17 * TODO chess-auto.el is not being built properly :BUILD:
18 :PROPERTIES:
19 :UUID: 184AF780-815B-43DB-87A4-0A81DE252AB0
20 :END:
21 [2008-08-31 Sun]
22 * TODO Sometimes a chess-test run fails to recognize promotions
23 :PROPERTIES:
24 :UUID: 431304B0-E8B9-485E-82B5-D4DF900C27DF
25 :END:
26 [2008-09-01 Mon]
27 * TODO display: Make highlight colors easily customizable
28 :PROPERTIES:
29 :UUID: D0842841-9E89-49A3-9EEB-5FA4D251FE41
30 :END:
31 * TODO display: Draw move highlights as a border, not a background
32 This should be optional, since backgrounds can look nice too.
33 :PROPERTIES:
34 :UUID: 5A7A3C73-5105-4BAB-A027-79310B9CD061
35 :END:
36 * TODO display: Always validate the display before painting
37 This will require adding a new text property to each square on the board,
38 `chess-piece', so that the validator can walk through the displayed board
39 and ensure that it matches the known position for that board.
40 :PROPERTIES:
41 :UUID: 169EB9E9-ED82-4FA7-AE8A-129FFFE419F6
42 :END:
43 * TODO autosave: This module currently isn't working at all!
44 :PROPERTIES:
45 :UUID: D31ED224-7C1E-4171-AE38-AE87D0032743
46 :END:
47 * TODO autosave: Doesn't support undoing of moves
48 :PROPERTIES:
49 :UUID: 80E09658-6D7E-4DD5-A077-E3CDB80F6003
50 :END:
51 * TODO clock: Sometimes, the clock gets shut off while playing on ICS
52 :PROPERTIES:
53 :UUID: 5130D83E-91A4-4FFD-B62F-DFD8345B06AC
54 :END:
55 * TODO irc: If move before opponent connects, symbol assertion "value"
56 :PROPERTIES:
57 :UUID: DCCEB9D3-0F5F-484C-9D4E-A0B7801F101D
58 :END:
59 * TODO network: Does not work at all!
60 :PROPERTIES:
61 :UUID: AC39392F-57EF-4D79-A718-DEB4B24DFC5D
62 :END:
63 * TODO gnuchess: Triggers a Lisp error when I resign
64 :PROPERTIES:
65 :UUID: 8ADABEB5-BF38-4A71-949F-074048AED7B0
66 :END:
67 * TODO ics: Takebacks still aren't working 100%
68 When I submit a takeback request manually, and the other side accepts, my
69 client doesn't know what to do with it
70 :PROPERTIES:
71 :UUID: 67BF2EFF-66E6-4DE3-BCD1-D1743D8C7AC3
72 :END:
73 * TODO ics: Accepting match request doesn't seem to be working always
74 :PROPERTIES:
75 :UUID: 296B2B3D-B4CF-418E-8FA6-36D301D09136
76 :END:
77 * TODO ics: Resuming adjourned games does not work at all
78 :PROPERTIES:
79 :UUID: D2E35ADE-1CFF-4DB6-A910-DF3C886709B3
80 :END:
81 * TODO ics: Not detecting forfeit by disconnection at the moment
82 :PROPERTIES:
83 :UUID: 0EDCC239-65B0-450F-82B9-12B1E96667D4
84 :END:
85 * TODO If you are playing a puzzle game, and the engine is thinking
86 And you hit space to move to the next puzzle, then when the last move is
87 finally received from the engine it causes an error.
88 :PROPERTIES:
89 :UUID: 4583E224-B5A2-47D4-906E-6374AA7AB936
90 :END:
91 * TODO Port the code to XEmacs
92 :PROPERTIES:
93 :UUID: A633A292-722C-4566-9F5D-807675DAB8DD
94 :END:
95 * TODO Find a way to display pieces on Windows platforms
96 Or at least document how to build XPM support into Emacs for Windows.
97 :PROPERTIES:
98 :UUID: D602699C-A340-41A4-BA94-876743D43F8C
99 :END:
100 * TODO Add chess-ucb to the list of modules created via M-x chess
101 Right now there is no facility for having two engines associated with a
102 single game (and chess-link is not what we want in this case).
103 :PROPERTIES:
104 :UUID: 8C355AA3-46DD-4261-BC7C-4028CDF42854
105 :END:
106 * TODO display: Sometimes final event of game doesn't change modeline
107 Like CHECKMATE, or FLAG FELL
108 :PROPERTIES:
109 :UUID: 316BD168-29A8-4B54-830C-FA5CEA397518
110 :END:
111 * TODO display: If I win, it still reports CHECKMATE incorrectly
112 If I'm white, it does so on the last ply (per display)
113 :PROPERTIES:
114 :UUID: 3F662E90-3F58-43E9-B59E-936F1EBC3953
115 :END:
116 * TODO display: Need "save game to a PGN file/database" command
117 :PROPERTIES:
118 :UUID: 2BBA9120-1EE5-4623-9F52-DFB966EC3317
119 :END:
120 * TODO engine: Answering "y" to opponent (takeback, etc) hangs
121 I get left with an hourglass cursor.
122 :PROPERTIES:
123 :UUID: 0F9290D9-90D6-48ED-9F13-EEDF42EA91F0
124 :END:
125 * TODO engine: If no chess engine available, print a nice message
126 :PROPERTIES:
127 :UUID: E0889D90-33FD-426F-AC45-6221136162D8
128 :END:
129 * TODO ply: detect games drawn by 3-fold repetition and 50 move rule
130 Note, FIDE rules define that a draw must be claimed by one of the opponents,
131 so we do not really need to do this on every move, just when a draw is
132 requested.)
133 :PROPERTIES:
134 :UUID: 4D3BBF63-A640-483A-ACF9-CC948AEAAAC7
135 :END:
136 * TODO pgn: When saving game to clipboard, shouldn't need to save FEN
137 If it's starting from a standard position (this doesn't always happen)
138 :PROPERTIES:
139 :UUID: 7CB3441C-9398-42D7-A174-5F534ADA473B
140 :END:
141 * TODO pgn: Sometimes when clipping, "*" is stuck to last move's text
142 :PROPERTIES:
143 :UUID: 5B737ED4-F271-425E-9F1D-1DFA7834BAFF
144 :END:
145 * TODO german: Complete translation
146 :PROPERTIES:
147 :UUID: 937301D5-2C31-4F43-83B0-FB9A0CD5F138
148 :END:
149 * TODO Profile and mem profile
150 Especially try to get the validation suite running faster!
151 :PROPERTIES:
152 :UUID: 4A08E03C-1AEA-4C14-951A-3F8DBB2E29E7
153 :END:
154 * TODO Elint all files
155 :PROPERTIES:
156 :UUID: 7F56D199-279D-4DAD-AF4C-D612AFC803FA
157 :END:
158 * TODO Add docstrings/texi content
159 :PROPERTIES:
160 :UUID: 7BC85C08-7A3B-4A09-94C6-9AF10180924B
161 :END:
162 * TODO Use checkdoc on all files
163 :PROPERTIES:
164 :UUID: 8D30489F-9000-43C3-BCA6-0C14F0E5C831
165 :END:
166 * TODO Clean up chess.el
167 :PROPERTIES:
168 :UUID: F2CC192E-8AD3-47BD-9A9F-3990BA1206A2
169 :END:
170 * TODO ics: Add a completion function against logged in users :FEATURE:
171 :PROPERTIES:
172 :UUID: 1AFE6B32-7236-4E71-9CCC-21B797E67F08
173 :END:
174 * TODO ics: Copy ics.el's nicer functionality into chess-ics.el :FEATURE:
175 :PROPERTIES:
176 :UUID: 05E523E9-38EC-4268-89B4-2A42409F9059
177 :END:
178 * TODO Use TrueType or other chess fonts for displaying positions :FEATURE:
179 This might be the best way of displaying positions on Windows.
180 :PROPERTIES:
181 :UUID: 0387D818-3841-4BA1-A246-F48349F4A53F
182 :END:
183 * TODO Enable chat module, and base its interface on what TNT does :FEATURE:
184 :PROPERTIES:
185 :UUID: A5AC87EC-99B7-4522-9916-F97ED3EC5F78
186 :END:
187 * TODO Merge chess-announce and chess-sound :FEATURE:
188 Use style modules on top of the underlying module.
189 :PROPERTIES:
190 :UUID: 87612913-B3AD-4329-892F-C156F88A358C
191 :END:
192 * TODO Create generic chess-output interface :FEATURE:
193 For outputting games to a particular format (PGN, HTML, LaTeX, etc).
194 :PROPERTIES:
195 :UUID: A7F64797-4827-4EF6-BFE4-075D6F430D4E
196 :END:
197 * TODO Display in modeline which game in the database we're in :FEATURE:
198 And what the positional evaluation is.
199 :PROPERTIES:
200 :UUID: 6144C07C-8F6B-46B8-80A8-C736E3C843F0
201 :END:
202 * TODO Add `force' event for forcing an engine to move :FEATURE:
203 And a command from chess-display to send this event.
204 :PROPERTIES:
205 :UUID: E88AE290-D2DD-4445-942E-E9DE09596A1F
206 :END:
207 * TODO Let people override the chess-default-* lists :FEATURE:
208 :PROPERTIES:
209 :UUID: AEBED712-70F6-499B-A8D8-6A8632D9A7D1
210 :END:
211 * TODO Write chess-descriptive.el, and have the code in general use :FEATURE:
212 chess-ply-to-string and chess-string-to-ply, so that users can use
213 descriptive notationas an alternative to algebraic.
214
215 (NOTE: this might proof problematic since descriptive move notation is
216 ambigious if we don't have the full game information, since we need to
217 destinguish between QR KR QN and KN. So chess-descriptive-to-ply would need
218 to use a game object as reference, rather than just a position.)
219 :PROPERTIES:
220 :UUID: 7C283CC8-450C-468C-93C3-C264CC8F536A
221 :END:
222 * TODO Change chess-announce/sound so it reads the text rendered move :FEATURE:
223 Such as "king's pawn to e4".
224
225 This way it will work with either descriptive or algebraic notation. Also,
226 chess-announce and chess-sound can be collapsed into one module, with
227 different "styles" of announcing.
228 :PROPERTIES:
229 :UUID: B7090875-BB45-438D-B7C9-CC7A0524D98B
230 :END:
231 * TODO Make ( create variations in a display :FEATURE:
232 And keys to move into and out of them. At the moment, variations are
233 supported programmatically, but not in the UI.
234 :PROPERTIES:
235 :UUID: C7B9BEEE-5261-412C-8592-5E1EDEBC5544
236 :END:
237 * TODO Make a read-only display mode :FEATURE:
238 Which allows people to view/browse but not alter a game. This could be used
239 for remoting displays in order that people on other X servers might observe
240 a game.
241 :PROPERTIES:
242 :UUID: 1968B422-B8D9-4493-9C90-401956C8CAE0
243 :END:
244 * TODO Enhance PGN mode :FEATURE:
245 Maybe pgn-mode could just allow normal editing, and bind some keys
246 to do special things. e.g., the mouse binding could work as normal,
247 SPC could update the display. So if you do
248
249 1 e4 SPC
250
251 you get the move displayed. Some binding could do redisplay anyway, e.g. C-l?
252 Then, one could enter variations or such simply with ( or { and
253 the display would update automatically.
254 e.g., you do
255
256 ( 15.e5 SPC Nf3 SPC )
257
258 and you'd get three display updates, on e5 SPC, you get that
259 ply, then the second one, and on ) you get the position before the
260 variation. Move point into the variation again, and hit C-l and you
261 get the pos where point is on.
262
263 There should be a forward-ply and backward-ply, maybe something like
264 M-f / M-b, and C-u M-f for two plies forward?
265
266 Very nice would be a pcomplete-based completion fascility, so
267 simply hit TAB at any point, and you get the right completion.
268
269 Example:
270
271 [Event ...]
272
273 TAB 1.TAB ...
274
275 On first tab, the move number is inserted. On second, you get
276 all possible moves in that position.
277 :PROPERTIES:
278 :UUID: 7D4ACEDE-C9D9-49E1-883F-829DB80FC5E7
279 :END:
280 * TODO Add support for adjournments :FEATURE:
281 Also, implement this is such a way that an e-mail or postal game is
282 basically a game that's adjourned after every move; use BBDB if available
283 :PROPERTIES:
284 :UUID: D41A3E75-04FB-4EC8-A64C-7BD54658AA78
285 :END:
286 * TODO Use MIME attachments (application/x-chess-pgn) :FEATURE:
287 For sending e-mail chess games back and forth.
288 :PROPERTIES:
289 :UUID: B01A0B43-12F3-4978-A63A-01ADBA9BB78D
290 :END:
291 * TODO Enable UI commands in chess-display to interact with databases :FEATURE:
292 As of 2.0, this support is programmatic only.
293 :PROPERTIES:
294 :UUID: 8CA4762E-4665-433E-9538-994BEDCABE21
295 :END:
296 * TODO Follow what `edit-env' does, in order to make chess-query.el :FEATURE:
297 :PROPERTIES:
298 :UUID: 48F2D4F3-8B1B-4196-BED0-1407239ADC4F
299 :END:
300 * TODO Allow the opponent to give hints :FEATURE:
301 :PROPERTIES:
302 :UUID: 068BE26D-4D81-44CD-A4EB-04F15D5064FB
303 :END:
304 * TODO Add warning mode that uses analysis results to warn the user :FEATURE:
305 And ask for confirmation before doing something that might lead to an
306 inferior position.
307 :PROPERTIES:
308 :UUID: 9EF1FA72-EDC9-4C97-B699-A0DF8EE1893B
309 :END:
310 * TODO Add a chess tutor program, to teach people how to play chess :FEATURE:
311 :PROPERTIES:
312 :UUID: 8AA53467-6D89-4C27-AF05-4AE793EA6A2E
313 :END:
314 * TODO Add slots to positions for tracking positional evaluation :FEATURE:
315 These values can be automatically determined when parsing ICS12.
316 :PROPERTIES:
317 :UUID: 608A74EE-9699-406B-B57A-08BFECBC9FEB
318 :END:
319 * TODO Add an engine function for obtaining a position evaluation :FEATURE:
320 Then, allow M-x chess to startup a non-game oriented engine, solely for the
321 purpose of submitting position evaluations, and displaying the result in the
322 modeline. (Also, look at crafty's kibitzing feature).
323 :PROPERTIES:
324 :UUID: BE3EAF49-622E-4300-9D63-CB00B5F738F7
325 :END:
326 * TODO Add a Map command, that will colorize the squares :FEATURE:
327 Depending on whether they are reachable by either side. Green if reachable
328 by you, Red if by your opponent, and blue if by both. With a prefix
329 argument, colorize only the squares that have pieces on them. This is a
330 stable modes that remains in effect until turned off. It also requires the
331 ability to pass a color to the chessboard highlighting routine.
332 :PROPERTIES:
333 :UUID: B2012331-0F7F-488D-BFDC-2C08E2E018FB
334 :END:
335 * TODO Using gnuplot-mode, allow evaluation trends to be plotted :FEATURE:
336 :PROPERTIES:
337 :UUID: BC458171-65B7-4CAE-ACF5-9FD0E263F425
338 :END:
339 * TODO Add an analyze command :FEATURE:
340 That will indicate which pieces are defended, how well, which are attacked,
341 which moves would increase defense/attack/both, etc. Basically, everything
342 that can be known about the current board, and one move ahead (on both
343 sides).
344 :PROPERTIES:
345 :UUID: 8439E0A2-6ED6-489D-94EF-9033F76210EE
346 :END:
347 * TODO Need a way to play bughouse/crazyhouse games. :FEATURE:
348 :PROPERTIES:
349 :UUID: 237BDAFD-0B92-4A06-AA25-D5568FF3DC4B
350 :END:
351 * TODO A way to keep a correspondence players database in BBDB :FEATURE:
352 :PROPERTIES:
353 :UUID: 8D40AD04-2392-410E-BDFE-AA80381E2BCB
354 :END:
355 * TODO Tools for managing a tournament :FEATURE:
356 Setting up pairings, calculating ratings.
357 :PROPERTIES:
358 :UUID: D53A7DA4-6940-4E0C-938E-08E12CC7EDEF
359 :END:
360 * STARTED display: Make it possible to "highlight the last move" :FEATURE:
361 - State "STARTED" [2008-09-01 Mon 03:59] \\
362 This is mostly done. I'd like to make the highlight done for the
363 opponent's moves
364 :PROPERTIES:
365 :UUID: F55EAAA5-504E-44A5-AA1A-43516711F8DD
366 :END:
367 * DONE "End of file" error reading game 2008149
368 - State "DONE" [2008-09-01 Mon 04:11] \\
369 The problem was parsing [Event "Hello \"].
370 :PROPERTIES:
371 :UUID: F994A8E9-5EDD-4681-863E-491806F0ED07
372 :END:
373 [2008-09-01 Mon]
374 * DONE [#B] ics: A refresh directive should act as a position assert
375 - State "DONE" [2008-08-29 Fri 06:28]
376 Compare with our current known board and trigger an error if it doesn't
377 match the refresh.
378 :PROPERTIES:
379 :UUID: C0F3CD12-83C5-4970-AD27-8C4A4C447BC2
380 :END:
381 * DONE display: Display problem with chess-display-side-to-move
382 The text doesn't show the face in the modeline
383 - State "DONE" [2008-09-01 Mon 03:55]
384 :PROPERTIES:
385 :UUID: 884690AC-C3BE-43D6-A600-48D221BD0FB0
386 :END:
387 * DONE Add an 'install' target to the Makefile
388 - State "DONE" [2008-09-01 Mon 04:02]
389 :PROPERTIES:
390 :UUID: 7A27FDC0-0053-4656-9AC9-6D7BEECE6D4A
391 :END: