Jetpack Compose
Minesweeper w/ This is a Minesweeper-like puzzle game, built using Jetpack Compose, for Android.
The objective of this game is to clear a rectangular board containing hidden "mines" or bombs without detonating any of them, with help from clues about the number of neighboring mines in each cell.
Try out the app, download the apk from the link below:
Demo
Dark mode | Light mode |
---|---|
Features :
- Zoomable and Pannable minefield
- Safe first click - The first cell is never a mine as the minefield is generated around the first click
- Multiple difficulty levels to choose from
- Quick toggle for click / flag mode
- Haptic & Aural feedback
- Day / Night theme
- Animating gradient cell background
- Randomly generated levels
Controls :
- Tap a cell to reveal it
- Long press an unrevealed cell to flag/unflag it
- Tap an already revealed cell to expose potentially solved cells
Package Structure :
com.jayasuryat.minesweeperjc
โโโ ๐ app/ # App module
โ โโโ presentation/ # Navigation & Screens
โ โโโ theme/ # Theming
โ โโโ MinesweeperApp.kt
โ
โโโ ๐ minesweeper-engine/ # Module for driving all the logics of the game
โ โโโ controller/ # Game actions, events, game controller and action handlers
โ โ โโโ model/ # Models for actions and events
โ โโโ gridgenerator/ # Generators for the minefield
โ โโโ model/ # Models for cells and grid
โ โโโ state/ # Stateful grid and utils
โ โโโ util/
โ
โโโ ๐ minesweeper-engine-debug/ # Module for debug utils related to minesweeper-engine
โ
โโโ ๐ minesweeper-ui/ # Module for all of the UI components of the mine grid
โ โโโ composable/
โ โโโ action/ # Action listeners for Minefield interaction actions
โ โโโ cell/ # All composables related to MineCells
โ โโโ component/ # Helper composables
โ โโโ grid/ # All composables related to MineGrid
โ โโโ theme/ # Theming for Minefield UI components
โ
โโโ ๐ ui-game/ # Module for the actual MineField screen
โ โโโ composable/ # All UI components
โ โ โโโ feedback/ # Composables for handling feedback
โ โ โโโ topbar/ # Composables for game TopBar
โ โโโ feedback/ # Helper classes for performing feedback operations
โ โโโ logic/ # Game logic coordinators
โ โโโ GameScreen.kt # Actual Game-Screen
โ
โโโ ๐ ui-difficulty-selection/ # Module for difficulty selection screen
โ
โโโ ๐ util/ # Module for common utilities
Contributions
Contributions are welcome! See Contributing Guidelines.
Credits
All the SFX used in this project are sourced from freesound.org and are licensed under the Creative Commons 0 License.
License
Copyright 2022 Jaya Surya Thotapalli
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.