Your chess works correctly, except for the cases specified in the description of the game. When I saw the brief description, I first wondered how playing chess would help me master the "Model-View-Controller"? It was only after a while that I realized that the exercise was development and not the process of playing the game:)