-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
16 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,25 +1,37 @@ | ||
# C++ Chess engine | ||
|
||
Chess engine written in C++. Needs UCI-compliant Chess GUI to play against it, for example [Arena](http://www.playwitharena.de/) or [Cute Chess](https://cutechess.com/). | ||
|
||
## Features | ||
* [0x88](https://www.chessprogramming.org/0x88) board representation | ||
* Negamax search with alpha-beta pruning | ||
* Quiescence search | ||
* Iterative deepening | ||
* Transposition table | ||
* Evaluation using material and piece-square tables | ||
* Evaluation using material, piece-square tables and basic pawn/rook structures | ||
* Principal variation table | ||
* Move ordering with MVV-LVA, PV-nodes and killer moves | ||
* 3-fold repetition handling | ||
* Uses UCI to communicate with a Chess GUI | ||
* Null move pruning | ||
* Late move reductions | ||
* PV-search | ||
|
||
## Setup | ||
|
||
(development) compile and run with: | ||
For development without optimization flags | ||
compile and run with: | ||
``` | ||
make | ||
make run | ||
``` | ||
|
||
(release) compile and run with: | ||
For release compile and run with: | ||
``` | ||
make release | ||
make run | ||
``` | ||
|
||
After compiling you can select the binary cppchess (or cppchess.exe in Windows) in your chess-GUI of choice. | ||
|
||
## Thanks | ||
This engine started with me following Maksim Korzh's youtube video series [0x88 MOVE GENERATOR](https://www.youtube.com/playlist?list=PLmN0neTso3JzhJP35hwPHJi4FZgw5Ior0) and [Bitboard CHESS ENGINE in C](https://www.youtube.com/playlist?list=PLmN0neTso3Jxh8ZIylk74JpwfiWNI76Cs) but now it has started to evolve into its own thing. I also took inspiration from [Blunder](https://github.com/algerbrex/blunder) and [TSCP](http://www.tckerrigan.com/Chess/TSCP/). |