Chess - Low level system design ![Build status](https://camo.githubusercontent.com/56e10425100aa2b0855d104d6fed658d7bee73368cb25e479d58d3c23c642532/68747470733a2f2f7472617669732d63692e6f72672f616e6f6d616c79323130342f63686573732d6c6f772d6c6576656c2d73797374656d2d64657369676e2e7376673f6272616e63683d6d6173746572)
https://youtu.be/RVHNcng0oF0
Problem Statement
- Implement checkmate feature.
- Write more unit tests.
- Support special move of pawn where it can go diagonal when it kills.
- At many places, we are evaluating conditions like:
- OR Operation: We are allowed to do something if any condition out of given conditions fulfill.
- And Operation: We are allowed to do something if all conditions fulfill.
Try to improve the design for this.
- Add history of moves for each player.
- Add support for casteling move.
- Can we remove putting currentCell in Piece? How about introducing something like position?
- A piece will have a position and you can always get the cell back from board using this position.