This is a code to run the game Chess, the chess variant ChessPeace and to flexibly run other pre-defined and user-created chess variants. The game of chess has evolved over many years into the beautiful and harmonious game that it is today, and along the way many variants of the game have been considered and revised on this journey – a journey which has not yet produced the final formulation of the great game of Chess. In addition to contemporary Chess, this software allows the user to experiment with different modern variants of chess including Capablanca Chess, the popular Fischer Random Chess and the novel ChessPeace variant.
Features of this code include:
- Play contemporary Chess with all of the standard FIDE rules*
- Play against (barely) intelligent computer opponents
- Play different chess variants
- Play with many new pieces with new abilities not seen in standard chess
- Thorough help files for user
- Commented code for a programmer
- Functioning and adjustable game clock
- Drag-and-drop move functionality
- In-game heads-up display for piece abilities (useful when playing with non-standard pieces)
- Ability to save and load previous games
- Easy to use menu system
- Original artwork
- Ability to design simple custom chess variants and play them against friends or computer opponents
*Rules about draws are not accurately enforced, for example, a draw by 3-fold repetition is forced rather than claimed (and may be buggy), a draw cannot occur by mutual agreement through the software and draws by insufficient mating material is not available because of insufficient theory dealing with the non-standard pieces. The 50 moves rule is enforced and extended to apply to all pawn-like pieces in the variants, not just classical pawns.
Anticipated Questions: To castle drop the king onto the rook. See in-game help for other questions.
Notes on the Code:
- Because I am the creator of the original chess variant ChessPeace and all of the artwork is original, this software cannot be sold or used to garner profit in any way without my consent unless fair use laws apply.
- I originally intended this code to be much more sophisticated and to include better AI. However, after writing the initial engine (it was my first attempt at a Chess engine that could handle non-classical Chess) I discovered it was much too slow to allow for accurately playing computer opponents (about 0.15 seconds to generate a list of legal moves in classical Chess). Rather than rewrite the engine I have decided to put this project on hold. I have no immediate plans to come back to this game, so improvements to the engine or AI are welcome.
- Please feel free to report bugs.
- This code borrows a few low-level functions from other submissions to the File Exchange.
Great stuff! Just lacks a good engine.
Mind, I'm using it to learn how to improve my GUI creation skills in Matlab without using GUIDE. What resources or materials did you use to integrate such a complex program.
@Madhur: Castling is implemented. Drop your king on any piece that is capable of castling. :)
Castling is not implemented ?