Overview
My project involves building a chess engine to play a variant of chess called Monster Chess.
There are many 'variants' of chess: chess-like games with altered rules. These altered rules lead to dramatically different play. Monster Chess was introduced to me by my father when I was very young, so this project combines my love for programming and chess with the desire to beat my father at the game he taught me!
Monster Chess differs from standard chess in two crucial ways: White gets two moves for every one move Black gets, and Black starts with their full set of pieces, while White starts with only a king and four pawns.
The power of the double-move king is what gives Monster Chess its name - the Monster White King.


Resources
Research Writeup (PDF)
Presentation Slides (PDF)
GitHub Repository
Approach
The engine is written in C++ and follows a minimax-inspired design. It modifies traditional chess move generation logic to handle Monster Chess’s unique rules, and then evaluates possible positions to select moves. The project includes features like Zobrist hashing, depth iteration, and rudimentary pruning logic.
A GUI built in Qt allows players to interact with the engine visually. One build of the game was designed to be runnable on most Windows machines using MinGW and Qt 5.12; frankly, however, it would take some effort to run the program on any machine.
Project History
This project evolved over several years - from early prototypes during the 2019–2020 period to a more polished version developed during the 2021 COVID lockdowns.
Note: this project is rough around the edges, being written as I was learning best programming practices.