TODO for gnuchess: 

(Items are in random order, mostly chronological, the important ones are
marked IMPORTANT, so that you can grep for them if this
gets too large... I like the TODO of xboard...)

The items marked with '-' are honest TODOs, the ones marked with '+' are
already prototyped (or at least worked on).

+ Add Analyze mode

- Make the location of opening books runtime-configurable

- Benchmark alternatives for the ubiquitous method used to
  traverse bits, a la (currently)
	
	while (b) {
		sq = leadz(b);
		CLEARBIT(b, sq);
		do_something();
	}

+ Add pondering (may be difficult, use pthreads or some low-level
  select() stuff?). That would be very close to implementing
  analysis mode.

- Add "offer draw" feature, both active and passive, add resign

- How about making certain weights user-definable, maybe through
  some run-time interface? It would certainly cost a little
  performance, but maybe not a big deal. Or maybe try to set some
  profiles like "aggressive", "positional" (well, that would be
  difficult), "passive" etc.

- Make gnuchess win against crafty (seems difficult to impossible...)

- Get some idea for a global gnuchess configuration file gnuchessrc, 
  which would maybe contain location of the book, size of hash tables
  and other stuff. I would suggest /etc/gnuchessrc and $HOME/.gnuchessrc
  as default locations on Unix-like systems, don't know where Windows
  programs use to put these things (in the registry?). I would consider
  also moving the list of chess players allowed in the book to some
  configuration file.

+ Improve PGN parser to accept "Import style PGN"? Would reduce
  performance slightly, but one could grab PGN files from all over the
  net...

- The book could in fact be built of several PGN files now, maybe one
  should separate book add (for really adding a book) and book create
  for compiling a new book from scratch.
