Android port of larry-fuqua/arrow-game — the Linux-native arrow-shading puzzle game.
Package: com.larry.arrowgame
UI name: Arrow Game
- Same puzzle generation (shape templates, winding arrows, hole regions)
- Levels: Beginner → Expert
- Touch: slide to highlight an arrow, release to select
- Scoring:
10 × length, blocked-click penalty, time bonus - Local / Guest profiles and high scores
- Celebration fireworks + score panel
- Synthesized sound effects (mute toggle in HUD)
- Android Studio or Android SDK command-line tools
- JDK 17+
minSdk26 /targetSdk36
cd arrow-game-android
# Create local.properties with your SDK path if needed:
# sdk.dir=C:\\Users\\you\\AppData\\Local\\Android\\Sdk
./gradlew assembleDebug
./gradlew installDebugOn Windows use gradlew.bat instead of ./gradlew.
Or open the folder in Android Studio and run the app configuration.
- Sign in with a display name or Guest.
- Pick a level — a puzzle is generated automatically.
- Slide your finger to highlight an arrow, then release to select.
- If its path out is clear, it slides out and shades cells. If blocked, it blinks red (−10 pts).
- Clear blockers first. When every arrow is gone, you win.
- A time bonus rewards faster clears.
arrow-game-android/
app/src/main/java/com/larry/arrowgame/
MainActivity.kt
game/ # Config, Levels, Shapes, Puzzle, FlowAnim, GameViewModel, GameAudio
data/ # Storage (profiles + scores)
ui/ # Compose screens + board canvas
Logic is a Kotlin port of the Python modules in the Linux repo (arrow_game/puzzle.py, shapes.py, levels.py, etc.).
Public repository — feel free to fork and experiment. Related project: arrow-game (Linux / pygame).