The above project is a chess game implemented in Python using Matplotlib as a GUI.
The chess pieces are unicode characters for chess pieces displayed as a text on the board. ♔♕♖♗♘♙
The board is a mathematical plot with axes analogical to chess board axes. It is refreshed and replotted after every move.
After clicking on the piece, if it is that piece's turn, a list of possible movements is displayed, marked with gray dots (for non-killing movements) or circles (for killing movements). The game informs about a check, and a check-mate states of the game. There is a possibility to perform both a long and short castle.
The game has score counting displayed on the top of the board, together with a visual list of pieces killed for both players.
The game can be reseted using the cross on the right side of the board. By clicking once on a pawn, the possible movements will be displayed for that pawn. By clicking twice on a pawn after selection, the selection will be reset.
The en passant movement is to be implemented in the future version of the game.