https://github.com/razvanfilea/chessengine
A UCI-compatible Chess Engine written in C++20 with an Android and WearOS Interface
https://github.com/razvanfilea/chessengine
android chess chessengine cpp20 evaluation futility-pruning iterative-deepening-search minimax-alpha-beta-pruning quiescence-search
Last synced: 9 months ago
JSON representation
A UCI-compatible Chess Engine written in C++20 with an Android and WearOS Interface
- Host: GitHub
- URL: https://github.com/razvanfilea/chessengine
- Owner: razvanfilea
- License: gpl-3.0
- Created: 2019-01-08T19:21:58.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-12-27T15:46:21.000Z (over 1 year ago)
- Last Synced: 2025-05-23T19:39:04.706Z (about 1 year ago)
- Topics: android, chess, chessengine, cpp20, evaluation, futility-pruning, iterative-deepening-search, minimax-alpha-beta-pruning, quiescence-search
- Language: C++
- Homepage: https://play.google.com/store/apps/details?id=net.theluckycoder.chess
- Size: 1.56 MB
- Stars: 5
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# ChessEngine
[](https://github.com/TheLuckyCoder/ChessEngine/actions)
[](https://github.com/TheLuckyCoder/ChessEngine/actions)
An UCI-compatible Chess Engine written in C++20 with an Android and WearOS UI written in Jetpack Compose.
This project uses the evaluation values (in the file Evaluation.cpp) from the Stockfish Chess Engine, licensed under GNU GPL 3.0.
## Features
- Search:
- AlphaBeta Pruning
- Aspiration Window
- Iterative Deepening
- Futility Pruning
- Reverse Futility Pruning
- Null Move Pruning
- Late Move Reductions
- Quiescence Search
- Lazy SMP
- Move Ordering:
- Hash Move
- MVV/LVA
- Killer heuristic
- History heuristic
- Evaluation:
- Evaluation Tapering
- Piece Square Tables
- Threats/Attacks
- Pawn Structure (Connected/Isolated/Double/Passed)
- Piece Mobility
- Long Diagonal Bishop
- Bishop Pairs
- Rooks on Open Files
- Rooks on Queen Files
- Pawn Shield
- Other:
- Zobrist Hashing
- Transposition Table
- Pawn Structure Table
## Building
### Android and WearOS
To build the for project for Android you will need at least:
- Android Studio Arctic Fox
- Android SDK Version 31 (Android 12)
- NDK 23.1.7779620
### Linux
Please note that the Linux version of the engine has no UI but can be used with any UCI-compatible chess interfaces.
To build the for project for Linux you will need at least:
- CMake 3.18
- C++20 Compiler:
* GCC 10
* Clang 13
## Compatible Interfaces
- [Arena](http://www.playwitharena.com)
- [Cutechess](https://github.com/cutechess/cutechess)
## License
Copyright (C) 2019-2021 Filea Răzvan Gheorghe
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .