-
Notifications
You must be signed in to change notification settings - Fork 0
Source code structure
Juules32 edited this page Sep 29, 2024
·
3 revisions
main.cpp
contains the entire base implementation of the engine.
I know what you're thinking - one big file, really? Yes. I've found it to be simpler this way;
- Faster compilation times.
- No annoying header files with decentralized code.
The engine is implemented with UCI integration in mind, so a global state (enclosed in the state
namespace) is used to maintain information about the position.
- Bitboards.
- Bitwise Move Encoding.
- Magic Bitboards, an amazing way to generate slider moves fast.
- Rudimentary Piece-Square Tables.
- MVV-LVA.
- Quiescence Search.
- Negamax as an implementation of Minimax.
- Alpha-Beta Pruning.
- History Heuristic.
- Killer Heuristic.
- Principal Variation Table.
web_build.cpp
is used for the demo. make webassembly
compiles the file to WebAssembly and exposes an API that the frontend script can interact with.