Skip to content

VCHui/angelfish

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

angelfish

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.

Engines implemented

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

Framework

  • Decouple sunfish.Position into move handlings and score evaluations separately
    • Subclass sunfish.Position as Superposition to handle moves,
      • moves generation
      • game over test (test "k" in board instead of score > sunfish.MATE_LOWER)
      • legal test
      • retain sunfish convention of black player moves from a rotated position
    • A new SunfishPolicy class to handle heuristic evaluation of position in engines
      • abstraction of sunfish.Position.score and sunfish.Position.value
      • the base class adopted sunfish.pst scores

A screenshot

screenshot

python3 only, or pypy3

git cloning with a submodule

  • sunfish is imported into angelfish.engines as a git submodule
  • My forked sunfish in a separate branch has added __init__.py to make sunfish importable
git clone --recursive https://github.com/VC-H/angelfish.git

angelfish

  • Distant relatives of sunfish
  • Refer to a class of fresh water aquarium fish for appreciation