An open API service indexing awesome lists of open source software.

https://github.com/samchenyu/cppchessengine

Minimax Algorithim with Alpha-Beta Pruning, Multi-Threading and Precomputed-Tables
https://github.com/samchenyu/cppchessengine

Last synced: 7 months ago
JSON representation

Minimax Algorithim with Alpha-Beta Pruning, Multi-Threading and Precomputed-Tables

Awesome Lists containing this project

README

          

# C++ Chess Engine
Utilising Minimax Algorithim with Alpha-Beta Pruning, Multi-Threading and Precomputed-Tables
~Roughly 1.5 million nodes per second for evaluation and move generation

## Board Representation: 12 Bitboards (Big Endian)
16 17 19 19 20 21 22 23

## EVALUATION Method
The evaluation ranges from -1 to 1:
1: Checkmate for white
-1: Checkmate for black
0: Equal evaluation or stalemate

The evaluation is dynamically weighted between the position and material difference.

The positional difference is calculated with piece square tables. The material difference is calculated with a sigmoid function:

$y = \frac{1}{1.1 + e^{(-x+4)}} \quad \text{for} \quad 1 < x < 39$

where x is the numerial material difference and y is the material evaluation.
[Link to PeSTO's Evaluation Function](https://www.chessprogramming.org/PeSTO%27s_Evaluation_Function)