1.6 KiB
1.6 KiB
A chess engine written in nim
For now, that's about it.
Installation
First, install mimalloc, because Nim's default allocator is fast but also borked beyond repair with threads, and malloc is slow as fuck. Use your distro's package manager to do this.
THEN
Just run nimble install
Testing
Just run nimble test
: sit back, relax, get yourself a cup of coffee and wait for it to finish :)
General info
Estimated elo: ~2100
Feature list
Search
- Null move pruning
- Late move reductions
- Quiescent search
- Aspiration windows
- Futility pruning
- Late move pruning
- Move reordering
- Alpha-beta pruning
- Check extensions
- QSEE pruning
- Reverse futility pruning
- Principal variation search
- Iterative deepening
- Transposition table
- Cutoffs
- Move ordering
- MVV-LVA
- Static exchange evaluation
- History heuristic
- History gravity
- History malus
- History aging
- Killer heuristic
- Null-window search
- Capture history
- Continuation history
- Parallel search (lazy SMP)
- Pondering
- Counter moves
Eval
- Piece-square tables
- Tempo
- King safety
- Pawn shield
- Mobility
- Minor piece outpost
- Bishop pair
- Rook/Queen on (semi-)open file
- Major piece on 7th rank
- Pawn structure
- Isolated pawns
- Weak pawns
- Strong pawns
- Doubled pawns
- Passed pawns
- Frozen pawns (blocked by an enemy pawn)