#Chess,
.Net framework
#Chess 
Home page for #Chess, a chess engine written entierly in C#. This project has been terminated
in favor to another engine "Sharper" that will be written in C++.
To use this program you need to have MS .Net framework installed, the latest
version of it can be downloaded from www.microsoft.com (Follow the link at the top of the page).
Thanx to:
Benny Antonsson, for introducing me to chess programming and answering stupid questions.
David Dahlem, for the nice logo.
History
v 0.06, 2002-03-01, source code (C#)
- This version contains the last work I did on this engine. I don't remeber what has changed since 0.05 but it's not much.
v 0.05, 2002-01-18, Tournament results and pgn's
- Implemented lazy evaluation to avoid doing the slow pst evaluation too often, with a window of 0.5 pawn it saves 25% in search time, with no apparent errors.
- Added code to separate opening phase from middle game phase, diffrent pst are used (seems #Chess is weaker now though, but I'm only guessing pst values soo).
- Improved the time control, #Chess should never run out of time now.
- Ironed out a bug in the move generation, en passant caputures when in check are generated now.
- Rewrote the InCheck testing function and improved move generator speed a lot. Thanx all helpful people at winboard forum for pointing me in the right direction.
- Improved the logging system, it now provides all information in and out of the engine.
- Improved the speed of the move ordering function.
- Enhanced the output to follow the standard for thinking output, still no PV though.
v 0.04, 2002-01-12
- Added draw by repetition rule.
- Added draw by 50 moves rule.
- Implemented setboard command.
- Implemented the level command, time control need to smarter though.
- Improved move ordering by sorting the generated moves.
- Fixed a bug in the move generation function, this also fixed a bug in the generation of hash keys.
- Calculated deeper perft values and found new bugs in the move generation.
- Implemented iterative deepening.
- Fixed a bug in the move generation function caused by the new board constants I generated.
- Fixed a bug in the evaluation function causing good opponent piece positions being regarded as good for the player.
- Added a new "divide" command to make debugging easier.
- Completed hashtable and hashing functionality, also added commands for setting hash table size. Setting the size works by creating a new hash table with the new size, problem is that I can't get the GC to release the previously used hash table.
v 0.03, 2002-12-17
- Messed with hashing, using Zobrist keys, it seems to work although I haven't decided on when to clear the hashtable and how to solve collisions.
- Restructured all the constants and lockuptables that #Chess uses, now all of the tables except for random numbers are generated at startup.
- Improved the commandline interface and added a logging option.
v 0.02, 2002-12-17
- Cleaned up the code a bit.
- Found a bug in the move validation.
- Fixed the bug and started adding a hashtable.
v 0.01, 2002-12-16
- Verified several positions with Crafty and Alarm, and I think the final bugs have been ironed out.
- With the exception from the 50 move rule, and draw by repetition #Chess plays chess correctly now.