home *** CD-ROM | disk | FTP | other *** search
/ PC-Online 1996 May / PCOnline_05_1996.bin / linux / source / xap / gchess / xboard-3.0 / xboard-3 / xboard-3.0.pl9 / ToDo < prev    next >
Text File  |  1993-09-08  |  12KB  |  222 lines

  1. Bugs
  2. ----
  3. B1. Popping up save dialog before exit if -autosave is true does not
  4.     work.  The dialog might pop up, but we don't wait for a response
  5.     before calling exit(), so user never sees it.  (xboard only.)
  6. B5. (xboard only.)  If we call CommentPopDown too soon after
  7.     CommentPopUp (and/or maybe vice versa as well) this seems to
  8.     trigger a race condition bug in Xt (xboard only).  At one
  9.     point the symptom was that the comment would stick on the
  10.     screen and couldn't be popped down.  Now the symptom is that
  11.     the window manager may fail to decorate the comment.  This can
  12.     be reproduced by loading a game that contains comments, using
  13.     a very short timeDelay, say -td 0.01.  
  14.  
  15. Possible improvements
  16. ---------------------
  17. 3. human-human playing
  18. 5. gray background for dark squares in 1-bit mode.  Do this like xchess does.
  19. 10. Add time control to record-file.
  20. 10a. In ICS mode, find out what time controls were.
  21. 12b. scoresheet text widget.  Current move should be highlighted.
  22.     Scoresheet could include comments or just have moves; latter is
  23.     easier to fit on screen.
  24. 16. Allow move typein from keyboard.  Maybe by typing into scoresheet, maybe 
  25.     a separate pop-up dialog.  See also 64.  Could allow multiple
  26.     moves when in force mode, to support X cut and paste from mail
  27.     and news. 
  28. 20. Some way to back up, explore variations, then return to the main line
  29.     and restore moves we backed out.  Should also support exploring
  30.     side branches while loading a game file.  Push/pop buttons?
  31.     Button to fork another xboard in same state as current one?
  32. 20a. Allow side branches to be remembered in game files (and
  33.     understood on LoadGame).  
  34. 26. After sending move to machine, wait for positive acknowledgement or
  35.         error message before proceeding; don't allow other events first. 
  36.         This will fix some race conditions and obscure bugs, and allow some new
  37.         features---e.g., selecting Machine White when white is not on move.  
  38. 42. Could generate ICS-style elapsed times on each move
  39.     for games played against gnuchess.  This should probably be
  40.     optional.  The same option could suppress the times on moves
  41.     from ICS, maybe.  (See also 46.)
  42. 43. Strength numbers from ICS are bogus if you use Backward/Forward.
  43.     They are nice to have, though.  Maybe xboard should generate
  44.     correct ones itself.  This could be done in non-ICS mode too.
  45. 46. LoadGame doesn't display ICS-style elapsed times on moves.  To
  46.     do this would require look-ahead or a parser change.  Either
  47.     is doable but ugly.  A benefit of look-ahead is that one could use
  48.     it to pop up comments along with the move they follow instead of
  49.     on the next forward step.
  50. 49. It might be nicer to step slowly through movelists obtained from
  51.     the ICS oldmoves command, as with LoadGame, instead of jumping to
  52.     the end.
  53. 51. Look into not killing the chess programs unless really needed.  Should
  54.     really never be needed except possibly when we need to stop one while
  55.     it's thinking.  Even then Attention() should get it; we just have to
  56.     deal with the bogus move it makes.
  57. 58. The "white vs. black" heading and default "white-black.game" save 
  58.     file name in ICS mode are nice; do something similar for games
  59.     against gnuchess.  
  60. 59. Make sure comment popup is wide enough considering font in
  61.     use.  Assume 80 characters is enough?  [Not a problem in WinBoard.]
  62. 60. Make sure gnuchessx is killed when the user kills xboard with ^C
  63.     or with KillClient from the X window manager menu.
  64. 61. Darooha suggests having a separate small window for ICS typein,
  65.     so that ICS messages that come in while you're typing don't
  66.     mix with what you're typing.  Your typing would be copied to
  67.     the main ICS window when you hit return.  WinBoard needs this 
  68.     even more than xboard because Windows consoles don't have the
  69.     ^R (retype line) feature of Unix.  Also, Windows console fonts
  70.     are ugly.
  71. 62. Support more kinds of time controls (in gnuchess mode).  Gnuchess already
  72.     handles game-in-N time controls.  It can handle Sleator clock (clock
  73.     where time is added on each move, as on Internet Chess Server) with
  74.     some external support, which xboard could provide.  Perhaps the
  75.     true Fischer clock could be supported as well (K seconds per move,
  76.     plus a reserve of J seconds per game that is used when a move takes
  77.     more than K seconds).  Another form would be simply K seconds per
  78.     move---like Fischer clock with J=0.  Note that current clock support
  79.     already works fine with ICS, because ICS supplies a clock update
  80.     along with each board update; that suffices to add the Sleator 
  81.     increment. 
  82. 62a. Support series of time controls as in recent gnuchess versions
  83.     (and real tournaments!).
  84. 63. Keyboard interface for moving pieces.  Ideas:  Arrow keys move
  85.     selection highlight around.  Highlight not visible until first
  86.     key is pressed, then starts (where?).  <Enter> "picks up"
  87.     piece, then arrow keys again to select destination.  <Esc>
  88.     aborts move (no touch move here!).  <Enter> again to put down
  89.     piece on new square.  Could maybe have similar selection
  90.     highlights on moves made with mouse.  In EditPosition mode,
  91.     <Insert> brings up piece menu and <Delete> empties current
  92.     square.  (These are PC keyboard keys.  What to use on vanilla
  93.     ASCII keyboard with X?)  Also, a-h keys could move highlight
  94.     to a-h file and 1-8 keys to 1-8th rank.
  95. 64. A different idea is    to allow move typein in algebraic, and
  96.     possibly let that be the only keyboard interface for moving.
  97.         Various compromises are possible but we don't want to highlight
  98.         the b file when user meant to move a Bishop, so can't do all
  99.         ideas at once.
  100. 65. Animate piece while moving.  (Sounds hard.)
  101. 66. Double bughouse mode.  (Lots of work.)
  102.  
  103. 68. WinBoard has some features not in xboard:
  104. 68a. LoadGameOptions dialog             (good to add)
  105. 68b. SaveGameOptions dialog             (good to add)
  106. 68c. TimeControl dialog                 (good to add)
  107. 68d. Help.                        (don't care)
  108. 68g. Font dialog.            (leave out)
  109. 68h. Colors dialog.            (leave out)
  110.  
  111. 69. xboard has some features not in WinBoard:
  112. 69a. Comment window is non-modal.            (would be nice)
  113. 69b. Alternate fonts specified by name.      (need)
  114. 69c. Font size selection by pattern fill-in. (leave out)
  115. 69d. Alternate bitmaps specified at runtime. (leave out)
  116. 69e. Error message dialog is non-modal and disappears if you make a move.
  117.  
  118. 71. Allow restart after ICS logout instead of exiting?
  119. 72. Allow switching among ICS, NCP, GNU modes??
  120. 73. Rename noChessProgram mode?  Revamp command line options for 3
  121.     main modes.
  122. 74. Observe multiple games.  Hard.
  123. 75. Rename ForceMoves mode?
  124. 76. GNU chess participation in ICS mode.  GNU chess could make moves,
  125.     or give hints.  (When would it think up the hints?)  Large
  126.     potential for abuse here.  A step towards xboard-based
  127.     gnuchess ICS client.
  128. 77. Remove excess #include's from backend.c and xboard.c, if any.
  129. 79a. Modal dialogs in WinBoard prevent on-screen clock updates; fix?
  130. 80. Clone command.  Saves current game to a file foo, then starts up
  131.     another copy of xboard with -lgf foo.  Should probably note
  132.     current state of some options and give command line flags to
  133.     set them the same way in child.  What about -ncp mode, though?
  134.     Might want that to be different.  Would be nice to have a
  135.     -moveNumber flag to position the child to the same move number
  136.     in the current game.
  137. 81. Measure and warn of lag in ICS mode, or some other kind of
  138.     feedback to show the lag.
  139. 82. Optional highlights: (a) Square that was downclicked while making
  140.     a move. (b) From and to squares of last move (by opponent?).
  141. 83. Error checking for use with cmail script.
  142. 84. "move now" button for when you've put gnuchess on a slow time
  143.     control.  Gerard van Dorth suggestion.
  144. 85. Rolling across menu bar with mouse button down should scan through
  145.     menus.  How to do this with Athena widgets?  (Not a problem on
  146.     WinBoard.) 
  147. 86. Look into using GNU autoconf.
  148. 87. Optional long notation, at least on screen (e.g., Bc1-b2).
  149. 89. Notice when user has selected a large font in -titleInWindow mode, 
  150.     and make sure the title line is wide enough for most messages; 
  151.     use Small format with title on separate line if not.
  152. 90. Change icon to reflect whose move it is (i.e., whether waiting for
  153.     user to make a move).  Stuart Cracraft suggestion.
  154. 91. Would be nice to have an option to overwrite save file instead of
  155.     appending.
  156. 92. Load last game in file command?
  157. 93. Auto font size for menu bar (in X) and move display window?
  158. 94. Loosen "it's not your move" checking to be only on mouse release
  159.     over new square, to make 1 0 ICS blitz players happier.
  160.  
  161. From WinBoard todo list:
  162. ------------------------
  163. 107. Changing time control during a game could be made to work.
  164.    Current way of changing at start is suboptimal.
  165. 108. Could add search depth and time per move to TimeControl dialog.
  166. 109. Could maybe add the rest of the init options to the option dialogs:
  167.    initString, whiteString, blackString, first/second Host/ChessProgram,
  168.    remoteShell, telnetProgram, ics Host/Port, useTelnet, gateway,
  169.    debugMode, clockMode.
  170. 110. Squash a few unix and windows-isms in backend.c.
  171. 117. Faster square drawing; precompute each piece/square color combo.
  172. 125. Automatically start telnet service if needed?
  173. 127. In useTelnet mode, we seem to get an extra NUL character after
  174.     each \n\r sequence sent by ICS, and the NUL prints as a blank.
  175.     At least I think that's what's happening.  Probably a bug in
  176.     NT telnet service; telnet protocol says send \r not followed
  177.     by \n as \r\0, and evidently NT telnet is not stripping the \0
  178.     back out.  ** I put in a kludge to work around this, and it
  179.     works, but bug in telnet should be reported to Microsoft.
  180. 127a. Another apparent telnet server bug: sometimes hangs after
  181.     connecting---no login prompt.  Hangs after "RCVD DO 24 (don't
  182.     reply)"  But it SHOULD reply to this (with WONT).  Sometimes
  183.     it does, and then things work fine.
  184. 127b. We also seem to get bogus NULs when typing while ICS output is
  185.     being displayed.  I don't know where those are coming from;
  186.     could be a concurrency problem accessing console from
  187.     different threads, or something entirely different.
  188. 129. Way to specify fonts in command line and .ini file.
  189. 131. "Save settings" command to rewrite .ini file.  Options menu or
  190.     file menu?  Exactly what is saved?
  191. 132. CHESSDIR equivalent?  Maybe not needed; can make a WinBoard icon
  192.     in the Program Manager and associate a working directory with it.
  193. 133. Comm port support needs more work.  Can't change port while running,
  194.     can't choose settings in init file or command line.
  195.     Maybe program should use existing settings at open time instead of
  196.     setting its own defaults?
  197. 137. Split up winboard.h to avoid annoying messages from dialog editor.
  198. 138. Split winboard.c in two?
  199.  
  200.  
  201. Old ideas I no longer think are so good:
  202. ---------------------------------------
  203. 12a. analog clocks
  204. 12c. jail
  205. 21. Maybe make LoadPosition parser smarter: able to skip arbitrary garbage
  206.     before the position, able to tell when file doesn't contain
  207.     a position, able to read positions in other common styles.
  208.     (Tricky if some use the opposite case convention.)  Forsythe notation?
  209. 23. Maybe allow LoadGame from SetupPosition mode, or even ForceMoves mode?
  210.     No, I think it's better to reset the position first.  A game
  211.     file can now include a starting position, which seems better
  212.     than loading position and subsequent moves separately.
  213. 55. Add lex-only mode to move parser---doesn't try to disambiguate moves
  214.     or check for legality.  Use to speed up scanning for nth game 
  215.     in a file.  (?)
  216. 57. The move parser is slow on low-powered machines (e.g., VS2000).  This 
  217.     is annoying when parsing ICS "oldmoves" or "moves" output to 
  218.     start observing a game.  Can it be speeded up?
  219. 27. Maybe add some optional screen flash when gnuchess makes its move.
  220.     No, I think -bell and the use of Forward/Backward to review
  221.     moves without retracting them is good enough.
  222.