https://github.com/initialposition/cheddarshredder
An iterative alpha beta based python chess engine with UCI capabilities
https://github.com/initialposition/cheddarshredder
Last synced: 11 months ago
JSON representation
An iterative alpha beta based python chess engine with UCI capabilities
- Host: GitHub
- URL: https://github.com/initialposition/cheddarshredder
- Owner: InitialPosition
- License: mit
- Created: 2021-04-07T15:30:07.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2022-03-31T13:06:38.000Z (almost 4 years ago)
- Last Synced: 2025-02-12T21:46:22.202Z (about 1 year ago)
- Language: Python
- Size: 21.5 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CheddarShredder
_the best opening is horse_
## Content
1. Introduction
2. Functions
3. Installation
4. Roadmap
## Introduction
CheddarShredder is a python based iterative alpha beta search based chess engine. It can run in a terminal or in any UCI compatible chess GUI.
## Functions
- Works in terminal and UCI compatible chess GUIs
- Varies strength based on time left
- sometimes wins
## Installation
1. Clone this repository to your local hard drive.
2. Make sure Python 3 is installed. You can check by typing `python3 --version` into your terminal. If a string containing a version number is displayed, continue. Otherwise, install Python 3 from the [OFFICIAL WEBSITE](https://www.python.org/downloads).
3. Create a virtual python environment by typing `python3 -m venv ` into your terminal and switch to it using `source /bin/activate`.
4. Install the required packages by running `python3 -m pip install -r requirements.txt` while the virtual environment is active.
5. To launch the terminal version of CheddarShredder, use the command `python3 main.py`.
6. If you want to use the engine in a UCI compatible chess GUI, select UCI.py as the engine.
## Roadmap
- [ ] Fix UCI
The current UCI support is a quickly hacked together mess. It currently supports a bare minimum of commands to work with lichess and doesn't give any live analysis updates. This should be fixed as soon as possible.
- [ ] Improve search algorithm
The current search algorithm uses move ordering to speed up alpha beta pruning but could be vastly improved by using hash tables for already computed evaluations. The evaluation function itself is also in a very early state, only considering material counts and basic piece positioning. Things like pawn structures, traps and endgame scenarios should definitely be included at some point.