Internet Chess ToolKit
v0.2.0

-=[ ictk ]=- API Documentation

Summary: The Internet Chess ToolKit is a Java based set of libraries and widgets useful for performing common tasks such as reading SAN, PGN, FEN, generating legal moves, connecting to online chess server (future), and GUI widgets (future).

See:
          Description

Packages
ictk.boardgame The purpose of this package is to supply abstract classes that facilitate the implementation of turn-based boardgames.
ictk.boardgame.chess This is the implementation of the Chess game model.
ictk.boardgame.chess.io This contains all the objects necessary to process standard data formats for chess games.
ictk.boardgame.chess.net.ics The ICS package contains objects and interfaces common for all Internet Chess Server (ICS) type servers.
ictk.boardgame.chess.net.ics.event The ICS event package contains all events and parsers for those events that are generated from ICS servers.
ictk.boardgame.chess.net.ics.fics The FICS package contains objects and interfaces useful for the Free Internet Chess Server (FICS).
ictk.boardgame.chess.net.ics.fics.event The FICS event package contains all events and parsers for those events that are generated from FICS servers.
ictk.boardgame.chess.net.ics.ui.cli The ICS CLI package contains Command-Line Interface (CLI) widgets useful for presentation of and interactions with ICS happenings.
ictk.boardgame.chess.ui The UI package contains interfaces for various types of displays.
ictk.boardgame.chess.ui.cli This CLI package contains CommandLine Interface Displays and user interface components to use with Chess.
ictk.boardgame.io This package contains all the abstract I/O classes to be implemented for the game to allow reading of standard game notations.
ictk.boardgame.ui The UI package contains interfaces for various types of displays.
ictk.boardgame.ui.cli Command-line Interface (CLI) interfaces and widgets that are common for all boardgames.
ictk.util This package contains utility methods and classes to be used for logging errors and other common tasks where global functions are traditionally used.

 

Summary: The Internet Chess ToolKit is a Java based set of libraries and widgets useful for performing common tasks such as reading SAN, PGN, FEN, generating legal moves, connecting to online chess server (future), and GUI widgets (future). The net libraries convert ICS (Internet Chess Server) output into java events. This library is licensed under the GPL v2.

About: The purpose of the Internet Chess ToolKit is to provide an extensible library to facilitate the development of internet server clients, bots, training programs, peer-to-peer players, and and various other programs useful for the game player. The library was designed with a high level of abstraction and utilization of object oriented design patterns to make it extensible; The model set up should allow for implementations of many games besides Chess, which is the main focus of this library. Such other games might include chess variants like BugHouse, or completely different games like scrabble and the Chinese game of Go. Another goal of the library is ease of use. A lot of effort has gone into comprehensive documentation and providing sensible names for methods, as well as providing many convenience methods.

The goal of this library has never been to facilitate the development of engines. The amount of objects created, and the delegation of legal move generation to each of the pieces is not conducive to the efficiency required to make a competitive engine. Of course if speed is not a goal of your engine it might be interesting to use this library. All that's really needed is an evaluation routine to chose which of the legal moves the computer prefers.

Much of this library is dedicated to providing support for accepted game notation formats such as PGN (a standard game history notation) and FEN (a position notation). In later releases the library will support less conventional notations such as Scid databases, XPGN, ChessGML and others (if anyone has the specs on the current ChessBase format please email me). As much as is possible the library also tries to support internationalization, with priority on presentation and then on archival.

The net libraries enable programs to connect to internet game playing servers. The primary focus at this point is on establishing support for FICS (a free as in beer server), but later versions will also support ICC (a pay server similar to FICS). The main purpose of the library is to remove the grunt work and screen-scraping tedium from the developer by translating all ICS output into Java event objects. In general you connect to the server and then objects register to listen for different types of events. All the data has already been parsed for you; all you need do is make some sort of use of it. Unfortunately, there are many different ICS events, but over time ictk hopes to support them all.

GUI widgets and other commonly useful objects will be added to the library as well, however this task is very low priority at the moment. Contributions in this area are more than welcome.


Submit a bug or feature
Visit the Website
Internet Chess ToolKit is licensed under the GPL v2 .