Introduction
Welcome! Today, we’re diving into the world of classic games with a modern twist. Why Rust and Slint? Because I wanted to try Slint and already implemented Snake in Go+HTMX.
Repository: https://github.com/Erik7354/slint_minesweeper
Project Structure
slint_minesweeper/
├── src/
│ ├── main.rs
│ ├── minesweeper.rs
│ └── ui.rs
├── ui/
│ ├── icon/
│ ├── main.slint
│ └── tile.slint
├── build.rs
├── Cargo.toml
├── index.html
└── README
src/
main.rs contains two entry points for our app - one for the desktop and one for the web. The web version uses web_sys to read the query parameters as settings for the game. The parameters are width, height and mine_count.
minesweeper.rs contains all game logic.
ui/
main.slint contains the ui definitions for the main window, mine counter, timer and game field. The field consists of tiles which are founed in tile.slint.
Some Screenshots
Running natively…
Solved!
Final version running on WASM.