Download in Play Store.
SOPA is an android puzzle game.
The game consists of an field which has 16 tiles. These tiles contains a tube or nothing. The games goal is to connect two doors which are on the side of the field with the tubes in the field, by moving the tubes. To play the game, the tubes has to be moved horizontal and vertical.
As soon as the tubes connect the two doors a level is done.
The Levelmode consists of 100 predefined level, which can be played sequential. If a level gets solved the next gets unlocked. Solving a level the player gets stars for the win. The maximum stars are three.
In this mode the main opponent is the time. It starts with an easy level and 10 seconds of time. For each solved level the player gets the rest of his left time in addition to an extra bonus for the next one. Each level is autogenerated with an increasing difficulty.
For each level the player gets points. The number of points is calculated with the difficulty of the game and the moves needed to solve the game.
- harder game -> more points
- more moves-> less points
- JDK 21 recommended (JDK 17+ required)
- Android SDK Platform 35
- Gradle wrapper (included, version 9.1.0)
- Android Gradle Plugin 9.0.0
Execute tests:
./gradlew testDebugUnitTest
Build:
./gradlew assembleDebug
With JaCoCo there is a possibility to calculate test coverage.
./gradlew jacocoTestReport
The generated test results can be found here: app/build/reports/jacoco/jacocoTestReport/html/index.html
./gradlew clean
./gradlew :app:bundleRelease
The release bundle is generated at:
app/build/outputs/bundle/release/app-release.aab
The release build is configured for signing via keystore.properties in the project root:
storeFile=/absolute/path/to/your/keystore.jks
keyAlias=your_alias
storePassword=...
keyPassword=...Notes:
keystore.propertiesis local-only and must not be committed.- If your keystore is in iCloud (
/Users/<user>/Library/Mobile Documents/...) and signing fails with "Operation not permitted", copy it to a local path (e.g./Users/<user>/keys/...) and use that path. - Increment
versionCodefor every Play upload.
- Application ID / package:
com.sopaapp - App module
minSdkVersion: 24 - App module
targetSdkVersion: 35 - App + AndEngine
compileSdkVersion: 35
AndEngine is vendored directly in this repository (not a git submodule).
Sopa is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.