Some exercise implementations of chess engines using the very nice sunfish framework and tools
- The branch holds experiments of reinforcement learning.
- The main goal of angelfish project.
In order of increasing performance:
- Minimax
- Negamax
- AlphaBeta - with pruning, transposition table and iterative deepening
- Sunfish - refitting as a mixin
All engines have a method search(pos,secs) as in class sunfish.Search
- Decouple
sunfish.Positioninto move handlings and score evaluations separately- Subclass
sunfish.PositionasSuperpositionto handle moves,- moves generation
- game over test (test
"k" in boardinstead ofscore > sunfish.MATE_LOWER) - legal test
- retain
sunfishconvention ofblackplayer moves from a rotated position
- A new
SunfishPolicyclass to handle heuristic evaluation ofpositionin engines- abstraction of
sunfish.Position.scoreandsunfish.Position.value - the base class adopted
sunfish.pstscores
- abstraction of
- Subclass
sunfishis imported intoangelfish.enginesas agitsubmodule- My forked
sunfishin a separate branch has added__init__.pyto makesunfishimportable
git clone --recursive https://github.com/VC-H/angelfish.git- Distant relatives of sunfish
- Refer to a class of fresh water aquarium fish for appreciation