artfuldev / CAESAR

Chess Analysis Engine as an exercise in Software Architecture and Review (CAESAR)
MIT License
4 stars 0 forks source link

Review code additions since Journal Entry 09 #64

Open artfuldev opened 8 years ago

artfuldev commented 8 years ago

Issues discovered while reviewing the code additions are documented here till completion of the Rules of Chess Integration milestone.

artfuldev commented 8 years ago
Initial Setup

In Journal Entry 07 - The Chess Pieces, we covered the initial setup of the chess pieces on the board. It is now created by an IPosition initialized with a FenString.

100 Tests required to see if FenString piece placement, etc., work.

artfuldev commented 8 years ago
Gameplay

The player controlling the white pieces is named "White"(IGame has an IPlayer named White whose side is SIde.White); the player controlling the black pieces is named "Black"(IGame has an IPlayer named Black whose side is Side.Black). White moves first, then players alternate moves (IGame.SideToPlay is calculated). Making a move is required; it is not legal to skip a move. Play continues until a king is checkmated, a player resigns, or a draw is declared (IGame has IStatusUpdaters which update the Status and StatusReason. When play is not possible, calling IGame.Play() throws.

101 Gameplay Tests