FLUTTER ECOSYSTEM

kevmoo/slide_puzzle

The classic slide (15) puzzle in Dart and Flutter

Slide Puzzle project cover
Stars
179
Forks
75
Last push (UTC)
Sep 24, 2026
Project status
Active
Kevin Moore GitHub avatar
GITHUB User

Kevin Moore ↗

A Product Manager at @google working on @dart-lang and @flutter web technologies

@dart-lang @flutter @googleSeattle, WA, USAOfficial website ↗
LanguagesDartC++CMakeRubyCSwiftHTMLKotlinObjective-C

Related packages and examples

Dependencies used

Dependency list 9 items

App categories

Original README

English project snapshot. Visit GitHub for the latest content.

Expand / collapse project README

slide_puzzle

A slide (15) puzzle implemented in Dart and Flutter.

Live Demo: https://kevmoo.github.io/slide_puzzle/

Slide Puzzle Screenshot

Features

  • Multiple Themes:
    • Simple: Minimalist numerical tiles with smooth physics animations.
    • Seattle: Image-based slider dividing photography across the grid.
    • Plaster: Stylized typographic display using custom font geometry.
  • Physics & Animations: Spring simulation, velocity decay, and directional drag physics.
  • Built-in Solver:
    • Shortest-path A* solver utilizing Manhattan distances and linear conflicts.
    • Step-by-step hint button and automated playback solve mode.
  • Auto-Play & Metrics: Automatic random move ticker with move and tile counters.

Architecture

  • High-Performance Nibble Packing: Boards $\le 4 \times 4$ use _PuzzleSmart backed by a Uint32List packed into 4-bit nibbles for zero-allocation state transitions.
  • Incremental Delta Tracking: Tile movements calculate distance deltas and linear conflict adjustments incrementally without full board rescans.
  • Generic Fallback: Arbitrary board dimensions ($>16$ tiles, e.g. 5×5) gracefully fall back to _PuzzleSimple (Uint8List).

Development

# Run locally in Chrome
flutter run -d chrome

# Run test suite
flutter test

# Run tests with coverage
flutter test --coverage