home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 22 gnu / 22-gnu.zip / gnuch40.zip / gnuchess-4.0.pl79 / doc / TODO < prev   
Text File  |  1998-09-28  |  4KB  |  157 lines

  1.  
  2. TODO list for Gnuchess 4.0 pl 75.
  3.  
  4.  
  5. 1.  Optimizations
  6.  
  7. X   * Consider positions with insufficient mating material as terminal. 
  8.       This ought to speed up the endgame phase by quite a bit.  
  9.  
  10. X   * Don't pass INCscore around since its a global variable.
  11.  
  12. X   * Thinking on opponent's time.  This was fixed, but got lost in
  13.       the ensuing confusion.
  14.       (Note: There appears to be some problem when a mate is found
  15.       during the thinking process and the opponent actually makes the
  16.       predicted move.  For the moment, when this occur, the program
  17.       assumes that it doesn't know this and starts the search from 
  18.       the beginning).
  19.  
  20. X   * Remove ISZERO.  Its not being used often, but incremented and 
  21.       decremented in MakeMove and UnmakeMove.
  22.  
  23.     * Delay move generation until after null move is tried. 
  24.  
  25.     * Instead of the messy K + KP perfect code in eval.c, how about 
  26.       using a database.  This will allow us to extend gnuchess in the 
  27.       endgame database direction.  
  28.  
  29.     * Make alpha-beta window bigger when winning/losing.
  30.  
  31.  
  32. 2.  Improving program strength
  33.  
  34. X   * Problem with draw by repetition.  Gnuchess should offer draw
  35.       and if opponent reject, then play on, not stop and die.
  36.  
  37.     * Threat extensions. 
  38.  
  39.     * Singular extensions?  Maybe just PV-Singular extensions.
  40.  
  41.     * Separate the quiescent search from the full width search.  
  42.       This will simplify the code and allow us to do things with 
  43.       the quiescence which is not possible now e.g. null-move in 
  44.       quiescence.
  45.  
  46.     * Instead of adding 2 * Sdepth * TCleft when failing low, make
  47.       the program complete the whole ply.
  48.  
  49.     * Make the program don't lose on time no matter what.
  50.  
  51.  
  52. 3.  Adding more chess knowledge
  53.  
  54.     * Development bonuses.  
  55.  
  56. X   * Decrease penalties for isolated pawns.  Give extra penalties if
  57.       isolated pawns are on open file. 
  58.  
  59.     * If computer is losing in the endgame, don't give it PawnBonus to
  60.       encourage it to trade pawns.
  61.  
  62.     * Bonus for outpost knight/bishop if protected by pawn.
  63.  
  64.     * Opposite colour bishops.
  65.  
  66.     * Bonus for rook behind passed pawn.
  67.  
  68.     * Stupid moves like c4-c5 attacking Bd6, but closing pawn structure.
  69.  
  70.     * B+P+K vs K especially when its a draw.  Maybe use database.
  71.  
  72.     * Bonus for lever moves.
  73.  
  74.     * Redo the pass pawn logic.  The current algorithm is lousy.
  75.  
  76.  
  77. 4.  Tidying up of the code
  78.  
  79.      * Remove flag.rcptr variable and make capture extension standard. 
  80.  
  81.      * Is util.c needed anymore?  No, so removed.
  82.    
  83. X    * Instead of the find, use rm in Makefile clean:
  84.  
  85.      * Remove DISTDIR from Makefile.
  86.  
  87.      * Remove the newer version of time control and use OLDTIME as the default. 
  88.  
  89.      * Gnuchess has too many -D options (just look at the makefile).  
  90.        I think quite a few of them are outdated or unnecessary.  Perhaps 
  91.        some of these could be removed.
  92.  
  93.      * Need to update Makefile.dos?  How?  How about using Borland C++ ?
  94.        Both for DOS and for OS/2.
  95.  
  96.      * Clean up the codes to follow GNU standards (could take time).
  97.  
  98.      * Clean up the test directory.
  99.  
  100. X    * Faster compilation of genmoves.c
  101.     
  102. X    * Remove -DLEGAL flag.  Its quite useless.
  103.  
  104.  
  105. 5.   Features
  106.  
  107. X    * Support for Windows NT and Windows 95 from Mann
  108.   
  109. X    * Autoconf
  110.  
  111.      * Make the autoplay feature requested by Vincent Diepeveen
  112.  
  113.      * PGN & EPD support
  114.  
  115.      * Anybody want to write a retrograde analyzer for GNU?
  116.  
  117.      * Support PGN/EPD standard
  118.  
  119.      * A problem solver mode for those test problems with
  120.        good reporting of score.
  121.  
  122.      * A fast mate solver.
  123.  
  124.      * To resign when losing by more than a Q.
  125.  
  126.      * A port to Windows.  If no one volunteers, I'll probably
  127.        tackle this myself.
  128.  
  129.      * A DOS release.
  130.  
  131. 6.   Bugs reported and to be fixed.
  132.  
  133.      * gnuchess.hash problem reported by Henry Choy
  134.        (Actually problem was vague, I had no problem with
  135.         using gnuchess.hash).
  136.  
  137. X    * Fixed some bugs in gnuan.c
  138.  
  139. X    * Updated ARTICLE and ARTICLE.2
  140.  
  141. X    * Bug fixes from Tony Acero for book.c and gnuan.c
  142.  
  143.      * eco.pgn has no move number.  Make sure pgn reader can read it.
  144.  
  145. X    * Bug fix from Tim Mann for hash table code.
  146.  
  147.      * Update docs to mention that gnuchessx is to be used with
  148.        xboard.
  149.      
  150.      * mate in book problem by Mann.
  151.  
  152. X    * Bad o-o-o and o-o in book by Joe Stella
  153.  
  154.      * Mike's patch for non-ANSI C compiler to compile with unprotoize
  155.  
  156. X    * All *.z files are now *.gz files (gzipped).
  157.