MCPcopy Index your code
hub / github.com/blockfish/blockfish

github.com/blockfish/blockfish @v0.8.8

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.8.8 ↗ · + Follow
620 symbols 1,455 edges 37 files 213 documented · 34% updated 12mo agov0.8.8 · 2022-05-25★ 434 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Blockfish

Blockfish is a bot dedicated to Cheese Race, a niche game mode where one must clear 100 lines of garbage with randomly placed gaps ("cheese"). The goal of cheese race is to clear all 100 lines using as few tetromino's as possible. Blockfish is meant to be a practice tool for evaluating placements during a cheese race, spotting mistakes, and helping the user get better at recognizing more efficient ways of utilizing every piece.

Currently, Blockfish tends to outperform even highly skilled players, and has already beaten the world record for least-pieces 100L cheese race. However, there are still improvements to be made to the underlying algorithms. We hope to see Blockfish reaching before-unheard piece counts as low as 160 or 150.

screenshot of the Blockfish client

Blockfish is under development by iitalics, with lots of help from cheese race legend mystery in designing and fine-tuning the algorithms that make it perform so well.

Getting Blockfish

Blockfish is still in early development, but latest builds of the Blockfish GUI can be downloaded from the public GitHub repository.

Controls and theme configuration

The Blockfish client looks in ./config/controls.json for your personal controls configuration, and ./config/themes.json for the theme. The default controls file can be found in support/default-controls.json; edit this file to specify your own controls.

There are example themes in support/themes that you may use to change the colors in the client. See support/themes/README.md for more information.

Compiling Blockfish

Blockfish is written primarily in Rust. You can build it with the cargo tool.

  • Requires: rust version 1.48
  • Requires SDL2 and SDL2_ttf dev libraries.

The following command should be used to build the client:

cargo build --manifest-path blockfish-client/Cargo.toml --release --features msgbox

Note that on Windows you must have the .LIB files for SDL2 and SDL2_ttf placed in the same directory that you run this command in. Running Blockfish requires the associated .DLL files for these depencies.

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 360
Function 144
Class 99
Enum 15
Interface 2

Languages

Rust87%
Python9%
TypeScript4%

Modules by API surface

blockfish-client/src/view.rs64 symbols
block-stacker/src/stacker.rs49 symbols
blockfish-client/src/controller.rs41 symbols
scripts/fishtest.py35 symbols
blockfish-engine/src/shape.rs35 symbols
blockfish-engine/src/matrix.rs35 symbols
blockfish-engine/src/place.rs27 symbols
blockfish-engine/src/ai/analysis.rs27 symbols
blockfish-client/src/controls.rs26 symbols
blockfish-engine/src/ai/b_star.rs23 symbols
blockfish-engine/src/bin/service.rs21 symbols
blockfish-engine/src/ai/eval.rs21 symbols

For agents

$ claude mcp add blockfish \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page