flutter_stockfish_plugin

Last updated:

0 purchases

flutter_stockfish_plugin Image
flutter_stockfish_plugin Images
Add to Cart

Description:

flutter stockfish plugin

flutter_stockfish_plugin #
A Flutter plugin for the Stockfish Chess engine.
The current version is based on Stockfish 16.
Usage #
final stockfish = new Stockfish()

// Listen on stdout of Stockfish engine
final stockfishSubscription = stockfish.stdout.listen((line) {
print("received: $line");
});

// Sending UCI command to get Stockfish ready
stockfish.stdin = 'isready'

stockfish.stdin = 'position startpos moves e2e4' // set up start position
stockfish.stdin = 'go depth 20' // search bestmove with a max septh of 20

// Don't remember to dispose Stockfish when you're done.
// Make shure to dispose Stockfish when closing the app. May use WindowListener.
stockfishSubscription.cancel();
stockfish.dispose();
copied to clipboard
A complete Example can be found at stockfish_chess_engine.
Web support #
Web support is currently experimental and requires manuly adding assets. It uses a version of stockfish compiled with emscripten.
Usage:

Install emscripten and set the the Environment-Variable EMSDK
Build the CMakeLists.txt in web/
Copy the following files to web/stockfish/ in your project:

flutter_stockfish_plugin.js
flutter_stockfish_plugin.wasm
flutter_stockfish_plugin.worker.js
js_bindings.js
stockfish_data.bin



If a different path should be used: Change the path const's in js_bindungs.js and stockfish_web_bindings.dart
In order to make multithreading available, the site must run in a secure environment.
The following headers must be set for this:

Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Opener-Policy: same-origin

Problems:

The current version does not include the .js, .wasm and neuralnetwork data as assets.
This files will not be bundles automaticly on the web.

Goal of this fork of stockfish_chess_engine #

Avoid limitation. This version does not redirect stdout and stdin of the app for communication with stockfish.
stdin and stdout were replaced with a fakestream element.
Stockfish internal logging might not work (could be fixed).

Credits #

Based on and using source code from stockfish_chess_engine
Using source code from Stockfish.
Using source code from Flutter Stockfish.

Directory src/Stockfish contains the latest current release.
The code is modified to use a different communication interface.
The original license for Stockfish can be found in their GitHub repository.
Directory web/ may contains code compiled from emscripten. Emscripten is licensed among others under the MIT License. License Page

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.