Description:
SharpChess (http://www.sharpchess.com) is a computer application that enables you to play chess against the computer. It plays a challenging, tactical and, I'm told, "fun" game of chess.
Overview:
Game features
- Play the against computer opponent
- Graphical chess board
- Helpful high-lighting of legal chess moves, when clicking on a piece
- Real-time chess clocks
- Move history displayed
- Load/Save chess games during play
- Undo/Redo moves
- See real-time computer thinking
- See post-analysis tree of all moves considered by computer
- Stalemate and 3-move repetition detection
Chess engine features
Alpha-Beta search with Pricipal-variation (PVS)
Iterative Deepening
Hashtable (transition table) using Zobrist Keys. (Separate Pawn & Check hashtables)
Null-move forward pruning (verified and non-verified)
0x88 board representation
Move ordering using Hash table and History Heuristic
Quiescience Search (MVV/LVA and SEE)
Search Extensions (Check, Re-Capture, Pawn-promotion)
Futility pruning (Standard & Extended)
"n moves in x minutes" Move time-allocation algorithm
Programming features
A well-designed, and hopefully easy-to-understand, object-model that will enable other developers to quickly get involved in the project.
Object Model