TODO of GNU Chess

  Copyright (C) 2001-2015 Free Software Foundation, Inc.

  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
  notice and this notice are preserved.

Items are in random order, mostly reverse chronological.

* Clean and refurbish frontend new code: components.cc, engine.cc, etc.

* Evaluate the possibility to include an option 'enable/disable bigboard', to show a bigger board.

* Evaluate the possibility to include an option 'enable/disable coords', to show row and column numbers beside the board. Coordinates are already present in graphic mode.

* Consider using readline: replace calls to read() in frontend/engine.cc by calls to get_line(), the latter defined as in v5.08. Useful examples in the package examples directory. Those based on rl_callback_read_char can be interesting. See also http://www.gnu.org/software/autoconf-archive/ax_lib_readline.html.

* 'pgnsave' will not save a file identical to the original in a sequence pgnload-pgnsave.

* 'manual' and 'force' are almost identical, except for the order they do things. See cmd.cc.

* 'name <myname>' forces output redirection to a log file. Comparing with version 5.08, some of the output is lost.

* Report invalid move instead of segmentation fault for the following
position:

uci
ucinewgame
position startpos moves c2c4 g8f6 b1c3 c7c6 e2e4 d7d5 e4e5 f6e4 c3e4 d5e4 d1c2 c8f5 g1f3 e7e6 f3g1 f8c5 g2g4 e4e3 g4f5 e3f2 e1d1 f2g1Q h1g1
go wtime 298000 btime 300000

The problem is the 'Q' for queen in 'f2g1Q'. It must be a 'q'. This was 
reported by Igor Alelekov on 2014/06/29.

* Consider adding resign and draw offer commands.

* Add analysis tools for the evaluation function.

* Commands white/black/switch don't work. They are supposed to be 
used for icsDrone. However, icsDrone reports to not work for 
GNU Chess 5.02. Neither for v6...

* General cleanups: still some unused code from v5.

* Implement the weak mode.

* Improve compatibility with Chess Engine Communication Protocol.
For instance, 'move e2e4' instead of 'My move is : e2e4'.

* Add support for MS Windows.

* icsdrone for Internet

* 'pgnsave filename.pgn' will not replace filename.pgn, but will append to it.
This is not supported by the PGN format. The file must be replaced, may be 
asking the user to confirm or deny, or a new file name must be requested.

* When 'name NAME' is used, the log.nnn file is created, but it will miss
to include some information compared with v5.

* Consider using gnulib for better portability.

* Include PolyGlot's book making capability.

* Include PolyGlot's book merging capability.

* GA/EC venture to make the chess engine stronger.

* Get benefit from multiple-core processors, by sharing search across them.

* End-game table

* Bug: in FICS, after quiting in the middle of a game, logging in again,
accepting resuming game as proposed by opponent, the opponent moved but
GNU Chess never moved again. GNU Chess ran out of it.
