XiangQi Engine is a software Chinese chess
opponent. It provides interfaces for connecting to
chess servers, GUI clients, and a simple command
line tool with or without board printing.
Information regarding Project Releases and Project Resources. Note that the information here is a quote from Freecode.com page, and the downloads themselves may not be hosted on OSDN.
This is the "final product" that will be turned in for the senior project. This version includes non-blocking I/O, implementation of some of the "special rules", move time limits, some bug fixes, and a larger list of known commands (command set is nearly complete). A binary for the Zaurus PDA and a Windows GUI are available for download from the same site.
This version includes a rewrite of the search system and three different user-selectable search algorithms with several heuristic options for fine tuning. A compilation bug with new versions of g++ was fixed, and transposition hashing was added. Some algorithmic tuning was performed, resulting in a much faster set of search functions. Strengthwise, it appears to be a vast improvement over the previous version.
This version includes a quiescence search option, which is turned off by default due to processing time. It improves the engine's playing at the expense of speed. An opening book was also included. The book system itself is pretty complete, but the book data doesn't contain all lines. The evaluation mechanism was improved by adding weights to piece placement, making tsito a much better opponent. Some bugs were also fixed.
The new architecture has now surpassed what the final version of the old architecture was capable of. The engine is now capable of searching at greater depths and with greater speed thanks to move ordering and killer-move heuristics. This version understands end-game boundary conditions and makes reasonable attempts to avoid being drawn or mated.
The name of the package and executable have been changed to 'tsito', and the entire program has been rewritten from scratch using C++. This version is an initial release of the new architecture for testing purposes. Development on the C version has stopped. This release is faster and appears to be a little smarter, but does not yet understand end game boundary conditions.