demine
A minesweeper solver (and soon, engine). Still WIP, and rest of this doc is Claude.
Example
use Board;
use Solver;
use SeedableRng;
use SmallRng;
let = ;
let mut rng = seed_from_u64;
// Generate a random board and reveal one safe cell to get started.
let mut board = random_mines;
board.reveal_random_non_mine;
// Ask the solver for a guaranteed-safe cell given the current known state.
let mut solver = new;
let mut view = solver.with_known.unwrap;
let = view.find_safe_cell.unwrap;
println!;
Crate layout
board— board state, cell references, reveal / mine-set primitives.generator— mine placement and board generation.solver— solver entry point; deeper logic lives insrc/solver/.utils— shared helpers (parsing, neighbor iteration, formatting).
Features
use-mimalloc— swap the global allocator to mimalloc (v3). Off by default; enable for benchmarks and release runs where allocator wins matter.
Profiles
release— max optimizations (fat LTO, single codegen unit).testing— release-optimized but withdebug_assertionson; used by thecargo test-allalias to catch UB / overflow in hot paths.profiling— release + debug symbols, for perf tools (samply, Instruments).