This project was inspired in Chess.com and it even uses some of its pieces assets.
- Describe all the 5 types of pawn moves (move 2x forward, move 1x forward when it passes the middle board, eat on diagonal, promotion and en passant)
- Describe rook moves
- Describe knight moves
- Describe queen moves
- Describe bishop moves
- Describe king moves (it has to be aware of all the possible threats on board)
- Describe casteling move (king and rook shuffle its positions)
- Describe the interaction of 'eating' a piece
- Recognize Checks on king and inviabilize all moves that doesn't save king from check
- Inviabilize moves that will expose its king to a threat
- Recognize a Checkmate
- Recognize a Stalemate (draw)
- Draw board
- Place pieces on its squares
- Show moves history on a painel
- Allow users to move backwards or forward in history moves
- Manage pieces turns
- Highlight piece it is being clicked
- Show all the squares availables to move when a piece is highlighted
