Thanks for the feedback! I agree with you that the spikes didn't ultimately turn out to be the sort of danger I wanted them to be; perhaps they would've worked better in a game with a continuous timer rather than turn-based time. Regardless, it was a fun concept to explore and implement. The undo button is a good idea too: the code does actually store the last move the player and knights have made, so it probably wouldn't have been to difficult to implement (though I've fallen into the trap of "easy to implement" before, haha).