Woodstock is a work in progress! Expect issues.
You can play against Woodstock here.
This branch contains the woodstock chess engine and AI in C++, to be compiled to web assembly for running in the browser.
Currently, Woodstock searches
- Magic Bitboards for sliding pieces
- Playable as White/Black
- Minimaxing/Negamaxing/Negascouting with Alpha-Beta pruning
- Playable on Browser with WebAssembly
- Interactable Chessboard
- Load from FEN string
- PGN Export
- Different Mid/Endgame evaluations (WIP)
- Transposition Table with Zobrist Hashing (WIP)
- Iterative Deepening Search (WIP)
- Follows all Chess Rules (Only missing insufficient material & 50 move)
- UCI Compliant (WIP)
- Opening Book (TODO)
make
g++
orclang
clang-format
for lintingemscripten
for compiling to web assemblypython
for debug web page serving
clean
: Removes thebuild/
folderformat
: Formats files based on LLVM style
The following make command can take an optional argument target
, which can be web
, g++
, or clang
. The default is web
.
debug
: Compiles and runs basedtarget
Example with target
:
make debug target=clang
The following make command can take an optional argument target
, which can be web
, g++
, or clang
. The default is web
.
build
: Buildstarget
tobuild/
.- Compiles with
emcc
forweb
- Compiles with
g++
forg++
- Compiles with
clang
forclang
- Compiles with
run
: Runs binary if it exists inbuild/
serve
Usespython
to serve tolocalhost:8000