-=[ ictk ]=- Internet Chess Toolkit ChangeLog --------- Legend: [all] applies to all [dev] applies to some development tool [test] applies to the test suite [docs] applies to documentation [sample] applies to sample code [chess] applies to chess model or io [gui] applies to graphic user interface components [cli] applies to command-line interface components [net] applies to internet communication features [fics] applies to support for the www.freechess.org server [icc] applies to support for the www.chessclub.com server 0.2.0 - 2003-10-03 FICS Support (limited) [net] added FICS support to main branch of library [fics] removed BlockMode message chunking [fics] recoded login sequence to not use StringBuffer Also now correctly determines beginning of session. [fics] added guest account detection on login [fics] added Timeseal support {thanks: Alexander Maryanovsky (Jin)} [fics] changed FICS.*Events to FICS.*EventParsers to benefit from loose coupling of parsers to events. This will allow server event translations. [fics] changed FICSEvents now implement the Singelton design pattern. [fics] added test suites for the parsers [fics] added template files for Parsers and ParserTest to auto generate these files. [fics] added support for following events: style12, match request, kibitz, whisper, say, tell, channel tell, shout, c/t/-shout, emote, move list, pin, gin, seek ads, seek remove, seek clear, game results. [net] removed most of the ICS*Event.java and FICS*EventParser.java files. [net] added XSLT java code generation for ICSEvents and FICSEventParsers Since most event objects are simple and repetitive code they are now generated using XALAN (by default). [dev] added code generation target to build file The build file now has a XALAN dependency by default if you wish to use the code generator. [sample] fixed 791562 - SimplePGNDemo not checking or null on getResult() {thanks: Franck (obelixft)} [sample] added SimpleICSClient This sample program logs onto FICS and displays server output on the console (System.out). The output is ANSI color coded as defined by ANSIConsole. The sample code intends to show how to register to listen to events. An alternative channel listener is provided. [chess] fixed 801272 - PGNWriter added superfluious results PGN standard specifies only an end result, not results for variations. {thanks: Jerome Zago} [chess] fixed 791572 - PGNReader stopped on \n\n assuming end of PGN Changed the reader to use StreamTokenizer and ends on either EOF or seeing a proper result. {thanks: Franck (obelixft)} 0.1.3 - 2003-08-17 a bug, events & and a CLI Board [chess] fixed 784950 - wrong disambiguation This ultra rare bug was produced when a captured piece, of the same class, had the same destination in its uncleared leagal moves list as the piece uniqueness was tested for. Leagal dests are now cleared when the capture flag is set on a piece. Also ChessBoard.isDestUniqueForClass() now does consider captured pieces. {thanks: Jermone Zago for the bug report} [cli] added 788096 - CLI display for ChessBoards Also added BoardListener keep displays notified of changes in the underlying model. [cli] added TxChessBoardDisplay This is an only email CC chess coorispondence program's output format. There are several options to control how the output looks. [chess] added Board controllers like History and ChessMove now trigger Board to send updateBoard() to all BoardListeners. When History does a long series of moves (such as in rewind() or fastForward()) a TRAVERSAL_BEGIN event is sent first to notify the Listener that it might not want to update the board until the TRAVERSAL_END is called. [sample] added CLIPGNViewer This is a simple Command-Line Interface (CLI) PGN viewer. It demonstrates how to use a BoardDisplay. 0.1.2 - 2003-08-04 bug fixes (mostly) [dev] source distribution no longer comes with javadoc, since it can be easily created through the build tool. [dev] build.xml now uses the JUnit task instead of calling AllTests directly as before. junit.print.results can be used to toggle summary display. [docs] default distribution docs will not be for "public" members only. To create docs with different access use the build tool against the source with -Ddocs.access= on the command line. [sample] added 711183 - sample code SimpleChessGameExample demonstrates how to add moves to a game in the code. SimplePGNDemo reads in a PGN, writes it out, show the last FEN, and provides some stats on the mainline. [chess] fixed 775816 - SAN reader wasn't respecting full dis-ambiguation. {thanks: Jerome Zago for the bug report} [chess] fixed 776369 - NAG followed by comment set as prenotation {thanks: Jerome Zago for the bug report} [chess] fixed 776408 - double annotation do not respect variation bounds [chess] fixed 777732 - PGNWriter not writing numeric NAGs {thanks: Jerome Zago for the bug report} [chess] fixed 777741 - Black resigns on White's move yields wrong result. Carved out pre-Result object result code. Now all results are as Result objects attached to the last move in the list. Currently there is no provision for assuring that a Resulting move is terminal. Also several functions were removed: ChessBoard.setResign(), getResign, setDraw, getDraw, and similar were removed from ChessMove. You should now be using getResult(). {thanks: Jermone Zago for the bug report} [chess] fixed 778731 - non-numeric NAG "RR" and "N" not parsed by PGNReader. [chess] fixed 778408 - PGNWriter groups unrelated variations {thanks: Jermone Zago for the bug report} [chess] fixed 779762 - PGNReader ignores duplicate continuation This is actually by design; History.add() did not allow duplicate continuations to be added in hopes of trimming the tree. But the body of PGNs out sometimes take advantage of duplicate continuations to extend games past resignation, or have different annotations. Thus, History.add() now allows duplicate continuations. {thanks: Jermone Zago for the bug report} [chess] fixed 780102 - PGNReader thinks result is for variation {thanks: Jermone Zago for the bug report} [chess] changed NAG object methods to no longer insist on 'short'. Also changed the names of the methods to fit this change. Several new methods also added. [chess] added ContinuationList.find(Move) and findIndex(Move). These find continuations with the same coordinates as the input move. Both methods return an array of matches. [chess] added History.deepEquals(history, true) now checks prenotations and Results for all continuation lines. A null result is treated as equal to isUndecided() 0.1.1 - 2003-07-20 bug fixes [dev] fixed 758852 - build.xml needed manual doodling for JUNIT to work. The old build.xml file required the user to change the default home directory and possibly the junit.home variable. The fix includes using Ant's ability to detect environment variables on most platforms. An error is printed if Ant can't find that info so users can manually set it. {thanks: Jerome Zago for the bug report & suggestions} [dev] added "dist" targets to build.xml. This allows for easy building of the distribution files. [dev] added "cvs" target to build.xml By specifying the cvs.tag you can retrieve releases from the CVS. By default the build file will get the release that build file corrisponds to. If you want the development version from the CVS you should specify -Dcvs.tag=HEAD on the Ant command-line. [dev] added "cvs" ability to log onto the developers' CVS. Sometimes the public/anonymous CVS isn't very current. You can use the developers' CVS by -Dcvs.login= [test] fixed 771165 - testCheckmateSmother3: wrong assertions Test was passing because of bug 771063. Test corrected. {thanks: Jerome Zago for the bug report} [test] added debug info for PGNWriter [chess] fixed 759466 - PGN variation w/o space seperating paren and move. For example: (2.Bc4) instead of ( 2.Bc4 ) {thanks: Jerome Zago for the bug report & patch} [chess] fixed 771063 - double-check does not generate correct legal moves. {thanks: Jerome Zago and David Spencer for reporting the bug} [chess] fixed 773597 - annotation w/o space between delimeters caused error {thanks: Jerome Zago for the bug report} [chess] fixed 771199 - annotation before move list not handled correctly Now supports comments before games and before moves. For there to be a comment before a move (called a Prenotation) in a PGN there must be a comment after the previous move -- except in the case of a variation. [chess] fixed 774076 - PGNWriter error on writing null GameInfo [chess] fixed 774085 - PGNWriter error on writing null History [chess] fixed 774510 - EnPassant did not escape check. {thanks: Jerome Zago for the bug report} [chess] fixed extra space pre-appended to O-O in SAN [chess] added ChessBoard.isDoubleCheck() and changed isCheck() to be true when double-check is true. [chess] added Move.getPrenotation() and family. These are for comments/annotations before the move. [chess] added PGNReader/Writer now handle Pre-Notations. Prenotations might come as comments before a game or before variations. They are also determined when there are N comments in a row; N-1 will be appended to the Annotation of the former move and the Nth will become the Prenotation of the latter move. [chess] added 778422 - PGNWriter options several options have been added to PGNWriter. These include the ability to affect how the NAGs and symbolic notations are presented in the output, turning on or off Variation and Comment output, and the ability to intent the 1st variation off the mainline and comments on the main line. 0.1.0 - 2003-03-25 first public release [all] fixed equals() [all] added hashCode() [all] added lots of javadoc [all] cleaned up lots of code [all] removed dead code 0.0.7 - 2003-03-12 [dev] moved project to SourceForge.net [dev] moved source to CVS [dev] moved directory structure for CVS [dev] moved packages to be under ictk [dev] added GPL headers [dev] added JUnit test suite (and fixed lots of bugs. lots.) [dev] added Ant support [dev] moved to JDK 1.4 [all] removed dependency on external regex parsers Now using JDK 1.4 standard regex library. [all] added lots of internal documentation for javadoc [all] changed several class names to be more hierarchical [all] changed package model to be much more abstract to allow for non-chess turn-based games. For example, History now has no knowledge of chess. [chess] removed language bias from model [chess] added internationization to presentation . SAN can present in several languages (16) It can also read in them. . NAG has hooks to internationalize the verbose interpretations of NAG values. Currently only in English. [all] added Annotations as external to moves [all] added variation support to History [chess] added PGNReader/Writer variation support [chess] added XBoardNotation [all] added debug logging and messages through ictk.util.Log [all] added equals() to most classes [all] added dump() to many classes and changed several so they return a String instead of printing to STDERR [chess] changed castling assessment to be FischerRandom favorable [chess] changed BoardReader/Writer to BoardNotation [chess] removed TxChess notation support [chess] moved Rook/Bishop/Queen.isBlockable to Piece.isBlockable now using the LineOfSight algorythm [gui] removed TxChess gui objects from source tree [net] removed net from main source tree (still under heavy dev) 0.0.6 - 2002-05-04 [chess] fixed bad castling rules [all] fixed AmbiguousMoveException spelling and reporting [chess] added board position setup [chess] added FEN read/write [chess] added PGN with FEN [all] added history: gotoMove 0.0.5 - 2001-09-17 [dev] moved gui to Forte 3.0 [gui] recoded image load [gui] recoded JPreferences in Forte new interaction between pref and listeners [gui] added JGameInfo [gui] recoded JAbout in Forte [gui] added splash screen [gui] added new images 0.0.4 - 2001-08-28 [all] added command line option -d to start txchess in debug mode [all] added undo last executed move (remove from history list) [chess] added reads/writes PGN [chess] added suffix annotations (!, ?, !! etc) [chess] fixed SAN was showing "xd4" instead of "exd4" [chess] fixed SAN was showing "Rh1h2" instead of "R1h2" when file not unique [gui] added preferences dialog with ability to change board square colors [gui] added config file that is generated if you choose to "Save Preferences" The generated file is "txchess.ini" for windoze and ".txchessrc" for Unix [gui] added preference: turn square edges on or off [gui] added preference: coordinate borders 0.0.3 - 2001-08-22 [chess] added read/write new TxChess format files [gui] added history representation [gui] fixed first move on new game wasn't appearing in history lists [chess] added promotion rules [chess] added enpassant 0.0.2 - 2000-12-14 [gui] added GUI representation of board 0.0.1 - 1998-09-28 [chess] added legal move generation 0.0.0 - 1997-07-07 The beginning