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