Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/glolichen/potato-chess-browser
A short and simple chess engine that works in the browser
https://github.com/glolichen/potato-chess-browser
algorithm chess engine javascript webassembly
Last synced: about 17 hours ago
JSON representation
A short and simple chess engine that works in the browser
- Host: GitHub
- URL: https://github.com/glolichen/potato-chess-browser
- Owner: glolichen
- License: gpl-3.0
- Created: 2022-03-20T06:55:44.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-07-28T14:10:58.000Z (over 1 year ago)
- Last Synced: 2023-07-28T15:26:04.984Z (over 1 year ago)
- Topics: algorithm, chess, engine, javascript, webassembly
- Language: C++
- Homepage: https://glolichen.github.io/potato-chess-browser
- Size: 4.33 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Potato Chess
## Fork of https://github.com/glolichen/potato-chess-uci
A chess engine written in C++ and compiled to Web Assembly
Features:
* Written in C++ and compiled to web assembly using [Emscripten](https://github.com/emscripten-core/emscripten)
* Compiled using the command `em++ src/*.cpp -o js/engine.js -lembind -O3 -sALLOW_MEMORY_GROWTH`
* Memory growth must be allowed as memory usage usually exceeds 16MB
* Can also be used as a desktop app (electron) for maximum performance
* Bitboard-based move generator
* 30-100 million nodes per second move generator (depends on platform and position)
* Keeps track of pinned pieces and the direction they are pinned
* Keeps track of squares attacked by the opponent to prevent king from moving there
* Tapered evaluation (uses game phase to "weigh" the importance of midgame score to endgame score) with piece tables
* Minimax search with Alpha-Beta pruning
* Transposition table with Zobrist Hashing
* Move ordering is used to guess the strength of moves to speed up AB pruning
* Syzygy endgame tablebase (powered by [Lichess](https://github.com/lichess-org/lila-tablebase))