]> code.delx.au - gnu-emacs-elpa/blob - TODO
*** no comment ***
[gnu-emacs-elpa] / TODO
1 These are features scheduled for future 2.x releases.
2
3 ----------------------------------------------------------------------
4
5 General Features
6
7 - Enable the chat module, and base its interface on what TNT does
8
9 - Merge chess-announce and chess-sound, and use style modules on top
10 of the underlying module
11
12 - Create a generic chess-output interface, for outputting games to a
13 particular format (PGN, HTML, LaTeX, etc)
14
15 - Display in the modeline which game in the database we're in, and
16 what the positional evaluation is
17
18 - Add a `force' event for forcing an engine to move, and a command
19 from chess-display to send this event
20
21 - If you are playing a puzzle game, and the engine is thinking, and
22 you hit space to move to the next puzzle, then when the last move is
23 finally received from the engine it causes an error.
24
25 - Clean up chess.el, and let people override the chess-default-* lists
26
27 - Write chess-descriptive.el, and have the code in general use
28 chess-ply-to-string and chess-string-to-ply, so that users can use
29 descriptive notationas an alternative to algebraic.
30
31 - Write chess-html.el, for outputting a game to HTML
32
33 - Write chess-latex.el, for outputting a game to LaTeX
34
35 - Use TrueType or other chess fonts for displaying positions; this
36 might be the best way of displaying positions on Windows
37
38 - Change chess-announce/sound so that it reads from the text rendition
39 of the move; this way it will work with either descriptive or
40 algebraic notation. Also, chess-announce and chess-sound can be
41 collapsed into one module, with different "styles" of announcing.
42
43 - Write chess-epd.el, which is based on chess-fen, and is also a
44 database module for accessing positions within an EPD file
45
46 - Make ( create variations in a display, and keys to move into and out
47 of them. At the moment, variations are supported programmatically,
48 but not in the UI.
49
50 - Make a display read-only mode, which allows people to view/browse
51 but not alter a game. This could be used for remoting displays in
52 order that people on other X servers might observe a game.
53
54 - Implement the "50 moves after irreversible" draw rule in chess-ply
55
56 - Port the code to XEmacs
57
58 - Find a way to display pieces on Windows platforms, or at least
59 document how to build XPM support into Emacs for Windows
60
61 - Add a way to include the chess-ucb module in the list of default
62 modules created via M-x chess. Right now there is no facility for
63 having two engines associated with a single game (and chess-link
64 is not what we want in this case).
65
66 ----------------------------------------------------------------------
67
68 ICS Client
69
70 - Add a completion function against logged in users
71
72 - Copy some of ics.el's nicer functionality into chess-ics.el
73
74 ----------------------------------------------------------------------
75
76 Chess by Mail
77
78 - Add support for adjournments; also, implement this is such a way
79 that an e-mail or postal game is basically a game that's adjourned
80 after every move; use BBDB if available
81
82 - Use MIME attachments (application/x-chess-pgn) for sending e-mail
83 chess games back and forth.
84
85 ----------------------------------------------------------------------
86
87 Database Interaction
88
89 - Enable UI commands in chess-display to interact with databases. As
90 of 2.0, this support is programmatic only.
91
92 - Follow what `edit-env' does, in order to make chess-query.el.
93
94 ----------------------------------------------------------------------
95
96 Training/Tutorials
97
98 - Write a scripted chess-tutorial.
99
100 - Allow the opponent to give hints.
101
102 - Add a warning mode that will use the results of an analysis to warn
103 the user (and ask for confirmation) before doing something that
104 might lead to an inferior position.
105
106 - Add a chess tutor program, to teach people how to play chess
107
108 ----------------------------------------------------------------------
109
110 Analysis features
111
112 - Add slots to each position for keeping track of positional
113 evaluation (these values can be automatically determined when
114 parsing ICS12)
115
116 - Add an engine function for obtaining an evaluation of the current
117 position. Then, allow M-x chess to startup a non-game oriented
118 engine, solely for the purpose of submitting position evaluations,
119 and displaying the result in the modeline. (Also, look at crafty's
120 kibitzing feature).
121
122 - Add a Map command, that will colorize the squares depending on
123 whether they are reachable by either side. Green if reachable by
124 you, Red if by your opponent, and blue if by both. With a prefix
125 argument, colorize only the squares that have pieces on them. This
126 is a stable modes that remains in effect until turned off. It also
127 requires the ability to pass a color to the chessboard highlighting
128 routine.
129
130 - Using gnuplot-mode, allow evaluation trends to be plotted
131
132 - Add an analyze command that will indicate which pieces are defended,
133 how well, which are attacked, which moves would increase
134 defense/attack/both, etc. Basically, everything that can be known
135 about the current board, and one move ahead (on both sides).
136
137 ----------------------------------------------------------------------
138
139 Other variations
140
141 - Need a way to play bughouse/crazyhouse games.
142
143 ----------------------------------------------------------------------
144
145 Other features
146
147 - Keeping a player database in BBDB
148
149 - Managing a tournament, setting up pairings, calculating ratings