Bottle Sort Puzzle – Android Game Java Native Bottle Sort Puzzle – Android Game Java Native
Calming water-sort puzzle with 500 handcrafted levels, undo/restart/hints, dark mode, smooth canvas bottles.Bottle Sort Puzzle – Android Game Java Native
Calming water-sort puzzle with 500 handcrafted levels, undo/restart/hints, dark mode, smooth canv...
Overview
A complete, production-ready bottle sorting game where players tap bottles to pour colored liquid until every bottle is uniform. The project ships with deterministic 500-level progression, polished animations, sound effects, dark/light themes, star-based scoring, and persistent progress. Written in pure Java with custom Canvas rendering; no external game engines or heavy third‑party SDKs. Ideal for a quick rebrand, ad monetization, or expansion.
Features
- 500 solvable levels with difficulty scaling (3–8 colors, 5–10 bottles).
- Hint system using BFS solver: highlights source/target for 3s.
- Unlimited undo and instant restart per level.
- Star rating based on move efficiency; progress saved via SharedPreferences.
- Dark mode + in-app toggle; responsive grids (3 or 4 columns).
- Custom `BottleView`with selection bounce, pour animation, shimmer, and win overlay fade.
- SoundPool SFX (pour, click, win, error) in `res/raw`.
- Level select grid with lock/unlock and total stars indicator.
- Pause/menu, about/how-to overlays, share intent text.
- ProGuard-ready release build; minified by default.
- Monetization ready: call spot in `GameActivity.showWinDialog() "for interstitial/ad trigger; easy to add IAP for extra hints
Requirements
- IDE: Android Studio Giraffe/Koala or newer.
- Android Gradle Plugin: 8.12.3 (`build.gradle`).
- JDK compatibility: Java 8 (source/target).
- Compile/Target SDK: 36; Min SDK: 23 (`app/build.gradle`).
- Gradle wrapper: allow Studio to re-download `gradle-wrapper.jar` on first sync.
- Dependencies: androidx appcompat, material, constraintlayout, recyclerview, and cardview (no other third-party libs).
- Tested form factor: portrait phones; emulator or device API 23+.
Instructions
- Open: File → Open `d:BottleSortPuzzleWaterSortPuzzle`; let Gradle sync download wrapper.
- Run: Select device/emulator API 23+ → Run.
- Rebrand: change `applicationId` and `namespace` in `app/build.gradle`; update `app/src/main/res/values/strings.xml` (`app_name`, texts); replace launcher icons in `mipmap-*`.
- Colors/levels: update palettes in `ColorUtils.java`; adjust thresholds in `LevelGenerator.getColorCountForLevel()` to extend beyond 500.
- Ads: insert AdMob/interstitial call inside `GameActivity.showWinDialog()`; optional banner in layouts if desired.
- Sounds: replace WAVs in `res/raw` if you want new audio.
- Build release: Build → Generate Signed Bundle/APK → choose release; ProGuard already enabled; supply keystor
Other items by this author
| Category | App Templates / Android / Games / Casual |
| First release | 30 March 2026 |
| Last update | 30 March 2026 |
| Operating Systems | Android 7.0, Android 8.0, Android 9.0, Android 10.0, Android 11.0, Android 12.0, Android 6.0 |
| Files included | Layered .png, .apk, .java, .xml |
| Tags | android studio project, water sort puzzle, offline puzzle game, bottle sort game, android puzzle source, java android game, color sorting game, gradient liquid puzzle, 500 levels puzzle, dark mode game, hint solver, undo restart puzzle, admob-ready game, brain teaser mobile, calming casual game |








