A chess game in python
1. Clone the project:
git clone https://github.com/AlexDs20/Chess
2. Start the game:
There are two possibilities. Either you make it executable and run it:
chmod +x main.py
./main.py
or you can run it with python3 directly:
python3 main.py
Some properties can be set in the graphics.py (not optimal, I know). Those are:
Variables | Values | Effect |
---|---|---|
playerWhite | 'human', 'minimax' | Defines whether white is a human or a bot |
playerBlack | 'human', 'minimax' | Defines whether white is a human or a bot |
minimaxDepth | integer: 1, 2, 3, ... | Depth at which a minimax player would investigate (how many moves in advances it looks) |
minimaxPara | True or False | Whether to use a parallel implementation of minimax of not |
What is done:
- Basic motion of the pieces
- Graphical interface
- Link graphics to game rules
- Pawn Promotion
- Checks
- Checkmate
- Show possible moves on screen
- Make svg files for each of the pieces
- En passant
- Castle
- Black and white play alternatively
- minimax bot with alpha-beta pruning
- Randomize order moves used by minimax bot
- Castling using the FEN notations
- minimax multiprocess at root
- Stalemate
- 50 moves rule
What must be done:
- 3x repeated configuration = draw
- Implement deep learning bot
What could be done:
- minimax bot: multiprocessing (non-trivial as minimax is sequential...)
- Make the graphics scaling with the window