-=[ 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