2024-04-19 15:50:51 +02:00
# A chess engine written in nim
For now, that's about it.
# Installation
2024-05-04 20:30:26 +02:00
First, install [mimalloc ](https://github.com/microsoft/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
2024-04-24 10:41:01 +02:00
Just run `nimble install`
# Testing
2024-04-27 15:00:03 +02:00
Just run `nimble test` : sit back, relax, get yourself a cup of coffee and wait for it to finish :)
2024-05-15 16:26:10 +02:00
# General info
Estimated elo: ~2100
## Feature list
### Search
- [X] Null move pruning
- [X] Late move reductions
- [X] Quiescent search
- [ ] Aspiration windows
- [ ] Futility pruning
- [ ] Late move pruning
- [X] Move reordering
- [X] Alpha-beta pruning
- [X] Check extensions
- [X] QSEE pruning
- [X] Reverse futility pruning
- [X] Principal variation search
- [X] Iterative deepening
- [X] Transposition table
- [X] Cutoffs
- [X] Move ordering
- [X] MVV-LVA
- [X] Static exchange evaluation
- [X] History heuristic
- [X] History gravity
- [ ] History malus
2024-05-16 14:14:25 +02:00
- [ ] History aging
2024-05-15 16:26:10 +02:00
- [X] Killer heuristic
- [X] Null-window search
- [ ] Capture history
- [ ] Continuation history
- [X] Parallel search (lazy SMP)
- [X] Pondering
2024-05-16 14:14:25 +02:00
- [ ] Counter moves
2024-05-15 16:26:10 +02:00
### Eval
- [X] Piece-square tables
- [X] Tempo
- [ ] King safety
2024-05-16 14:14:25 +02:00
- [ ] Pawn shield
2024-05-15 16:26:10 +02:00
- [ ] 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)