CPG/Chess/README.md

79 lines
1.6 KiB
Markdown
Raw Normal View History

# A chess engine written in nim
For now, that's about it.
# Installation
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
Just run `nimble install`
# Testing
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)