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