A functional and minimalist mobile Minesweeper game built with Flutter, working on both Android and iOS.
- Classic Minesweeper Gameplay: Reveal cells, flag mines, and clear the board
- Three Difficulty Levels:
- Beginner: 9×9 grid with 10 mines
- Intermediate: 16×16 grid with 40 mines
- Expert: 16×30 grid with 99 mines
- Game Mechanics:
- First click is always safe
- Tap to reveal cells
- Long-press to flag suspected mines
- Auto-reveal adjacent cells when clicking empty cells
- Numbers indicate adjacent mine count
- UI Features:
- Mine counter showing remaining mines
- Timer tracking game duration
- Reset button with game state indicator (😊/😄/
☹️ ) - Clean, minimalist design
- Responsive layout for different screen sizes
- Flutter SDK (3.38.9 or later)
- Android Studio / Xcode for mobile development
- Clone the repository
- Install dependencies:
flutter pub get
flutter runlib/
├── main.dart # App entry point
├── models/
│ ├── cell.dart # Cell data model
│ ├── difficulty.dart # Difficulty levels
│ └── game_state.dart # Game state enum
├── controllers/
│ └── game_controller.dart # Game logic and state management
├── widgets/
│ ├── cell_widget.dart # Individual cell UI
│ └── board_widget.dart # Game board UI
└── screens/
├── game_screen.dart # Main game screen
└── difficulty_screen.dart # Difficulty selection
- Start a Game: Tap any cell to begin
- Reveal Cells: Tap on cells to reveal them
- Flag Mines: Long-press on cells to flag suspected mines
- Win: Reveal all non-mine cells
- Lose: Reveal a mine
- Reset: Tap the face button to start a new game
- Change Difficulty: Tap the settings icon to select a different difficulty level
- Framework: Flutter 3.38.9
- State Management: Provider
- Architecture: MVC pattern
- Platforms: Android, iOS, Web, Windows, macOS, Linux