Skip to content

A UCI Chess Engine with an ELO rating of ~2200 written in C using Negamax Search with Alpha Beta Pruning and Zobrist Hashing

License

Notifications You must be signed in to change notification settings

ArjunBasandrai/shuffle-chess-engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ShuffleAI

Shuffle Chess Engine


Shuffle is a UCI based chess engine written entirely in C. It is a magic bitboards based engine with an ELO of around 2200


Features

  • Magic Bitboards to pre-calculate sliding piece attacks quickly and efficiently
  • Zobrist Hashing and use of Transposition Table to store evaluated positions and detect 3-fold repetition
  • Negamax search with Alpha-Beta Pruning to quickly search for all possible positions
  • Advanced move ordering techniques like Principle Variation Search, Null Move Pruning, Late Move Reduction to reduce search times
  • Tapered Evaluation for static evaluation of given board state
  • Dynamically allocated transposition table to allow allocation of memory from the GUI or UCI command
  • Custom Polyglot Opening Book for enhanced opening performance
  • Ability to play at various time controls
  • UCI compatibility

Ratings

Version ELO
version 1.2.1 2048
version 5.2.0 2173

Instructions

Directions to run

  • Go to the Releases page and install the binaries for your operating system
  • Open the binary in any UCI based GUI like Arena GUI or Cute Chess GUI
  • Set any time control of choice
  • Have fun!

Using Polyglot book (optional)

  • Install the shuffle.bin polyglot book from the Releases page or use any polyglot book of your choice and rename it to shuffle.bin
  • Keep the book in the same directory from which you are running the bianry

Directions to build

Type the following command in the terminal to create a fresh build for your system -

git clone https://github.com/ArjunBasandrai/shuffle-chess-engine.git

Windows

make windows v=<version-suffix>

MacOS (only ARM CPUs)

make apple v=<version-suffix>

Linux

make linux v=<version-suffix>

Once compilation is completed, the executable can be found in the root directory as shuffle_<version_suffix>


Contributors

Arjun Basandrai

Arjun Basandrai

GitHub

References

Bitboard Chess Engine in C Series by Chess Programming
VICE Chess Engine in C by Bluefever Software
Coding Adventures: Chess Bot by Sebastian Lague

License

License

Note

  • If you're in India and using the Jio Network, you may experience difficulties viewing the images in this file. Please consider switching to a different network provider or utilizing a VPN to access the images

About

A UCI Chess Engine with an ELO rating of ~2200 written in C using Negamax Search with Alpha Beta Pruning and Zobrist Hashing

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Languages