SharpChess is a free
, computer application that enables you to play chess
against the computer.
SharpChess also uses the Chess Engine Communication Protocol
, and can therefore play against other chess engines using WinBoard
. SharpChess has competed in computer vs. computer chess tournaments (WBEC
). Developers are invited to participate in the open-source SharpChess project at GitHub
to help improve SharpChess's chess-playing powers!
SharpChess has been wholly developed using the C# (C Sharp) programming language
, and runs on Microsoft Windows and Mono
- 15 Jan 2012 - Version 2.6.9 released for download.
- 12 Dec 2011 - SharpChess open source project (and source code) is now being managed at GitHub.com.
- 20 Oct 2011 - I am proud to annouce that SharpChess is being used by Microsoft CLR JIT Team as a benchmarking tool to "drive/validate some future set of new JIT optimizations" in the DotNET framework!
- 10 July 2011 - Sharpchess(2) competes in the ChessWar Edition 8 Tournament where its ELO is rated at 1572.
- 13 Jan 2007 - SharpChess runs on Mono. See screenshots on the Mono website.
- Play the against computer opponent.
- See move-analysis tree of all moves considered by computer.
- 16 preset difficultly levels, or specify custom settings using combinations of Move Time, Maximum Search Depth, and Pondering.
- Graphical chess board.
- Helpful high-lighting of legal chess moves, when clicking on a piece.
- Real-time chess clocks.
- Move history displayed.
- Undo/Redo moves.
- Load/Save chess games during play.
- Replay your saved games.
- Paste FEN positions from the clipboard.
- See real-time computer thinking.
- Stalemate and three-move-repetition detection.
- Flip board to play from black or white's perspective.
Chess engine features
- WinBoard compatible.
- Alpha-Beta search with Pricipal-variation (PVS).
- Quiescience Search.
- Iterative Deepening.
- Hashtable (transposition table) using Zobrist Keys. (Separate King-Pawn & In-Check hashtables).
- Adaptive Null-Nove Forward Pruning.
- 0x88 board representation.
- Move ordering using Hash table, MVV/LVA, SEE, 2-slot Killer-Move, History Heuristic.
- Search Extensions (Check Evasion, Single response, Pawn push to 7th rank, Re-capture of same-value piece).
- Late Move Reductions.
- Futility Pruning.
- Quiescence Search (Re-Capture, Pawn-promotion, Enprise piece, pieces attacked by pieces of lower value).
- Pondering (thinking during opponent's time).
- "n moves in x minutes" Move time-allocation algorithm.
- Opening book containing over 1300 varied opening positions.
- A well-designed, and hopefully easy-to-understand, object-model that will enable other developers to quickly get involved in the project.
- Find out more about chess programming at the excellent chessprogramming.wikispaces.com
I am very interested in hearing any feedback you may have about SharpChess: queries, bugs, enhancement ideas, or savegame files of any games you have played. Please contact me
(Peter Hughes) at firstname.lastname@example.org