Attempt to create a decent adversary to play chess against. The game implementation used for the agents in this project is another personal project chess_python
Run the (very basic) GUI with:
pip install chess-ai-pip
python -m chess_ai.playground.chess_gui
Classical engine:
- Create "decent" agent with alpha beta pruning and minimax
- Implement Move ordering
- Implement transpositions (caching)
- Implement Iterative deepening search
This classical engine is limited by the performance of the chess game implementation (heavily)
Deep lerning agent:
- 1. Game implementation with legal moves known and value network based on plays of DL agents
- 2. Learned model, policy and value network
Evaluation of agent strenght:
Come up with a simple strength evaluator strategy that can be used to measure progress for the DL agent and baseline for classical engine agent.
- Choose an arbitrary number of positions
- Run them through an engine (stockfish) and rank all posible moves (from best to worst)
- Compare chosen move from agent to the list of moves from the engine
- Assign score based on how good is the agent choice, if agent choice is more than one (same evaluation for different positions) take the best
- Sum the score
UI
Important for testing TODO:
- Basic UI
- Play also as black inverting board
- Allow args when launching the GUI (depth, agent type, fen)