SharpChess in C#


SharpChess ( 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.


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