/Chess

A chess game in python

Primary LanguagePython

Chess

A chess game in python

Graphical interface of the game. White is a human and black is a bot using minimax.

How to play you ask?

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

Variables:

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

In Development

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