Deadly Chess History
En passant rules
The computer should recognize and avoid draws when winning
Opening Database
Chess Variants: Suicide Chess, Knight hunting, Atomic chess
Various bugs were fixed and a 4 piece Endgame Tablebase was implemented. Memory constraints of the tablebases were resolved by accessing the hard drive rather than the memory. I also fixed up almost all search instability issues.
The AI was rehauled and I added some major optimizations. The major one was an transposition table which allowed the computer to recognize recurring positions without recalculating it. The main purpose of this was to improve the horrible endgame play of the AI. Luckily, it allowed fantastically deep searches in locked pawn positions and it improved general endgame play by increasing the search depth to around 7-10 in these positions. However, the computer can now search up to ply 6 in reasonable time (for intensive middle game situations). I also added the user friendly features such as improving the user strength and options to draw, resign and start a new game.
The AI was vastly improved to use iterative deepening. While iterative deepening sound counter intuitive, I saved the best move in each position which increased alpha beta speeds drmatically. The computer can now search to ply 5 within a reasonable time. Rather than limiting the depth, a time limit was placed. Also, the computer will now attempt to win rather than stalemate. A new rule was added that disallowed castling while in check. I also threw in an extra which saved the game to a file in algebraic notation. Quiescence search did not work as planned because the extra ply of move generation simply clogged up all system resources.
I was deeply satisfied with this version because I finally got alpha-beta to work. This increased the search depth on my computer (AMD 64 3000+) to a depth of 4 within an average time of 5s. Before a ply-3 search was the limit. I also implemented a hashtable that stores all the moves generated from a single position so if that position arises again, it can quickly tell all the legal moves in that position. I would estimate its rating at 600-800, but I doubt it could ever mate with a queen due to its crappy endgame (the search depth was fixed at 4).