Michael Dore - Chess

Everything for the first 2 parts of the problem should be in here. The pawn logic is complete.

Moves that would put the player in check are not listed/allowed. When a player is in check, only moves that get them out of check should be available.

Endgame conditions were not tackled.

There are pretty extensive unit tests.