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.Position
into move handlings and score evaluations separately- Subclass
sunfish.Position
asSuperposition
to handle moves,- moves generation
- game over test (test
"k" in board
instead ofscore > sunfish.MATE_LOWER
) - legal test
- retain
sunfish
convention ofblack
player moves from a rotated position
- A new
SunfishPolicy
class to handle heuristic evaluation ofposition
in engines- abstraction of
sunfish.Position.score
andsunfish.Position.value
- the base class adopted
sunfish.pst
scores
- abstraction of
- Subclass
sunfish
is imported intoangelfish.engines
as agit
submodule- My forked
sunfish
in a separate branch has added__init__.py
to makesunfish
importable
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