Skip to main content

Wraps the open-source Stockfish chess engine for easy integration into python.

Project description

Stockfish

Implements an easy-to-use Stockfish class to integrates the Stockfish chess engine with Python.

Install

$ pip install stockfish

Ubuntu or Debian

# apt install stockfish

Mac OS

$ brew install stockfish

Features and usage examples

Initialize Stockfish class

You should install the stockfish engine in your operating system globally or specify path to binary file in class constructor

from stockfish import Stockfish

stockfish = Stockfish("/Users/zhelyabuzhsky/Work/stockfish/stockfish-9-64")

There are some default engine's settings:

{
    "Write Debug Log": "false",
    "Contempt": 0,
    "Min Split Depth": 0,
    "Threads": 1,
    "Ponder": "false",
    "Hash": 16,
    "MultiPV": 1,
    "Skill Level": 20,
    "Move Overhead": 30,
    "Minimum Thinking Time": 20,
    "Slow Mover": 80,
    "UCI_Chess960": "false",
}

You can change them during your Stockfish class initialization:

stockfish = Stockfish(parameters={"Threads": 2, "Minimum Thinking Time": 30})

Set position by sequence of moves:

stockfish.set_position(["e2e4", "e7e6"])

Set position by Forsyth–Edwards Notation (FEN):

stockfish.set_fen_position("rnbqkbnr/pppp1ppp/4p3/8/4P3/8/PPPP1PPP/RNBQKBNR w KQkq - 0 2")

Get best move

stockfish.get_best_move()
d2d4

Get best move based on a time constraint

stockfish.get_best_move_time(1000)

Time constraint is in milliseconds

e2e4

Check is move correct with current position

stockfish.is_move_correct('a2a3')
True

Set current engine's skill level:

stockfish.set_skill_level(15)

Set current engine's depth:

stockfish.set_depth(15)

Get current engine's parameters:

stockfish.get_parameters()
{'Write Debug Log': 'false', 'Contempt': 0, 'Min Split Depth': 0, 'Threads': 1, 'Ponder': 'false', 'Hash': 16, 'MultiPV': 1, 'Skill Level': 20, 'Move Overhead': 30, 'Minimum Thinking Time': 20, 'Slow Mover': 80, 'UCI_Chess960': 'false'}

Get current board position in Forsyth–Edwards notation (FEN):

stockfish.get_fen_position()
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1

Get current board visual

stockfish.get_board_visual()
+---+---+---+---+---+---+---+---+
| r | n | b | q | k | b | n | r |
+---+---+---+---+---+---+---+---+
| p | p | p | p | p | p | p | p |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
| P | P | P | P | P | P | P | P |
+---+---+---+---+---+---+---+---+
| R | N | B | Q | K | B | N | R |
+---+---+---+---+---+---+---+---+

Get current board evaluation in centipawns or mate in x

stockfish.get_evaluation()

Positive is advantage white, negative is advantage black

{"type":"cp", "value":12}
{"type":"mate", "value":-3}

Get current major version of stockfish engine

stockfish.get_stockfish_major_version()
11

Testing

$ python setup.py test

Security

If you discover any security related issues, please email zhelyabuzhsky@icloud.com instead of using the issue tracker.

Credits

License

MIT License. Please see License File for more information.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

stockfish-3.12.1.tar.gz (5.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

stockfish-3.12.1-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

File details

Details for the file stockfish-3.12.1.tar.gz.

File metadata

  • Download URL: stockfish-3.12.1.tar.gz
  • Upload date:
  • Size: 5.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.9

File hashes

Hashes for stockfish-3.12.1.tar.gz
Algorithm Hash digest
SHA256 0a97029cddf172fe8aa699f4b804743ca0b2b702a3114f3380b73d475dd1785f
MD5 a9d0d125adc4838cb7fa9e949f9f2507
BLAKE2b-256 70149094c818264bee58f4f0533ccf8a839d3afcfe22b9dd638f4026a563d6fc

See more details on using hashes here.

File details

Details for the file stockfish-3.12.1-py3-none-any.whl.

File metadata

  • Download URL: stockfish-3.12.1-py3-none-any.whl
  • Upload date:
  • Size: 6.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.9

File hashes

Hashes for stockfish-3.12.1-py3-none-any.whl
Algorithm Hash digest
SHA256 423ccad6283281bd0de735f5222e0aa67ebac0d9b795cd8c957dcfde77ab9e71
MD5 a7ccd8245a5e95d5da472a4db343a664
BLAKE2b-256 7be5ab0abe8ad53cf03fb677cb70d9d5d0deece94c03965b7fd3c71c11c50d6f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page