https://github.com/y9vad9/minesweeper
Kotlin Multiplatform Minesweeper Game with seed-based generation. Bachelor’s thesis project.
https://github.com/y9vad9/minesweeper
android compose-multiplatform desktop game ios koin kotlin kotlin-multiplatform sqldelight web
Last synced: 26 days ago
JSON representation
Kotlin Multiplatform Minesweeper Game with seed-based generation. Bachelor’s thesis project.
- Host: GitHub
- URL: https://github.com/y9vad9/minesweeper
- Owner: y9vad9
- Created: 2025-12-17T15:55:46.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2026-05-24T16:11:54.000Z (29 days ago)
- Last Synced: 2026-05-24T16:20:03.780Z (29 days ago)
- Topics: android, compose-multiplatform, desktop, game, ios, koin, kotlin, kotlin-multiplatform, sqldelight, web
- Language: Kotlin
- Homepage: https://minesweeper.y9vad9.com
- Size: 397 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[Українською](README.uk.md)
# Minesweeper
A cross-platform Minesweeper game built with Kotlin Multiplatform and Compose Multiplatform. Runs on desktop, Android, iOS and the web from a single shared codebase.

## Features
- Classic Minesweeper rules with first-click safety and flood-fill reveal.
- Easy, Medium and Hard presets, plus custom board sizes.
- Shareable game codes and seeds, so the same board can be replayed.
- Flag mode, chording, and a game history with best times.
- Two skins (Minimal and Classic), light/dark themes, and English/Ukrainian locales.
- In-progress games are saved and restored across app restarts.
## Modules
- `logic` — game rules and core models, no UI or platform code.
- `data` — persistence (settings, history, saved game) per platform.
- `ui` — shared Compose UI and FlowMVI stores.
- `desktop`, `android`, `ios`, `web` — platform entry points.
## Requirements
- JDK 21
- Android SDK (for the Android target)
- Xcode (for the iOS target)
## Running
Desktop:
```
./gradlew :desktop:run
```
Web (opens a browser):
```
./gradlew :web:wasmJsBrowserDevelopmentRun
```
Android (device or emulator connected):
```
./gradlew :android:installDebug
```
iOS: open `iosApp` in Xcode and run on a simulator or device.
## Tests
```
./gradlew jvmTest
```
## Tech stack
Kotlin Multiplatform, Compose Multiplatform, FlowMVI, Koin, SQLDelight.