SOPA is an android puzzle game.

Overview

Sopa

Build Status

Download in play store.

Overview

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.

Gamemodes

Levelmode

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.

Justplay

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

Development

Tests

Execute tests:

./gradlew test --continue

Build:

./gradlew build

Reporting

With jacoco there is a possibility to calculate the test coecoverage.

./gradlew jacocoTestReport

The generated test results can be found here: app/build/reports/jacoco/jacocoTestReport/html/index.html

Release the game

./gradlew clean ./gradlew :app:assembleRelease

After that in Android Studio: "Generate signed APK"

License

Sopa is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

Comments
  • Endlosmodus

    Endlosmodus

    Es soll einen Endlos-Modus geben, in dem zufällig Level erzeugt werden, die daraufhin gelöst werden sollen.

    Um den Modus spannend zu gestalten ist noch Konzeption notwendig.

    Einen solchen Modus hat es schon gegeben. Er war noch nicht ausgereift genug um produktiv zu gehen.

    Ideen:

    • Zeitbasiert: Zeit läuft im Spiel herunter, für jedes gelöste Level bekommt man einen Zeitbonus. Der Modus läuft solange, bis keine Zeit mehr vorhanden ist.
    enhancement 
    opened by djschilling 3
  • Levelvalidator

    Levelvalidator

    Es soll einen Levelvalidator geben, der überprüft ob die erzeugte Leveldateien das korrekte Format haben um Inkonsistenzen zu vermeiden.

    Der Levelvalidator soll den Spezifikationen in #38 entsprechen.

    enhancement 
    opened by djschilling 3
  • Musik und Musik-Button inkonsistent

    Musik und Musik-Button inkonsistent

    Von @flash1293 : Habe einen Bug gefunden - er ist klein und unwichtig und schwer zu reproduzieren, aber trotzdem ;)

    • App zurücksetzen
    • starten
    • Ton mit Hardware-Button am Telefon auf 0 stellen
    • Lvl-Mode > Lvl 1 starten
    • Lvl 1 machen
    • Ins Menü zurück, Settings auswählen
    • Auf Ton-Button klicken (jetzt ist es das Mute-Symbol)
    • Zurück, Lvl-Mode > Lvl 2 starten
    • Lvl abbrechen (Zurück-Button), Menü > Settings
    • Die Musik ist aus (auch wenn man mit Hardwarebutton am Telefon wieder aufdreht), aber das Symbol ist das falsche (also nicht das Mute-Symbol)
    • Wenn man den Button drückt, ändert sich das Symbol auf das Mute-Symbol, der Ton bleibt aus.
    • Wenn man nochmal drückt, geht die Musik an und das Symbol ist auch korrekt.
    bug 
    opened by djschilling 3
  • Funktionsgrafik erstellen

    Funktionsgrafik erstellen

    Für den Google Play Store muss eine Funktionsgrafik erstellt werden.

    Sie dient der Darstellung im Store: https://support.google.com/googleplay/android-developer/answer/1078870?hl=de

    Anforderungen: 1024x500 24 Bit PNG ohne Alpha

    enhancement 
    opened by djschilling 2
  • Splash-Screen: Bild auf Loadingbild umstellen

    Splash-Screen: Bild auf Loadingbild umstellen

    Im Ladebildschirm der App soll nicht mehr der Couchstudio-Screen erscheinen, sondern der Sopa-Screen, der sonst auch immer beim wechseln von Screens erscheint.

    enhancement 
    opened by djschilling 2
  • Levelgröße skalieren

    Levelgröße skalieren

    Aktuell wird die Schwierigkeit des Spiels über die Anzahl der Verschiebungen gesteuert.

    Eine weitere Möglichkeit ist das über die Levelgröße zu tun.

    So könnte man Level 6x6 bauen.

    Dabei muss darauf geachtet werden, dass es auf kleinen Handys noch spielbar bleibt.

    idea 
    opened by djschilling 1
  • Remove unused FileHandler.writeToFile method

    Remove unused FileHandler.writeToFile method

    I saw that this method was used in previous revisions but isn't used anymore. So you might want to delete it.

    BTW: The line if (i < strings.length) was not really needed anyway since it always evaluated to true, as this is the same condition as in the for loop definition. I guess this should've been an if (i < strings.length - 1) instead? But it doesn't matter now anyway since the whole method would be removed with this PR anyway :wink:.

    opened by benasocj 0
  • Justplay: Bei Neustart zählt Zeit nicht mehr weiter

    Justplay: Bei Neustart zählt Zeit nicht mehr weiter

    Johannes:

    hab grad nen Bug gefunden, wenn du im Just play modus bei 0 Sekunden auf refresh klickst, läuft die Uhr nicht ab und du kannst dir ewig Zeit lassen.

    bug 
    opened by djschilling 0
  • General code quality fix-2

    General code quality fix-2

    This pull request is focused on resolving occurrences of Sonar rules squid:S2131- Primitives should not be boxed just for "String" conversion. squid:S2178 - Short-circuit logic should be used in boolean contexts. You can find more information about the issues here: https://dev.eclipse.org/sonar/rules/show/squid:S2131 https://dev.eclipse.org/sonar/rules/show/squid:S2178

    Please let me know if you have any questions.

    Faisal Hameed

    opened by faisal-hameed 0
  • General code quality fix-1

    General code quality fix-1

    This pull request is focused on resolving occurrences of Sonar rules squid:S1118 - Utility classes should not have public constructors. squid:S128 - Switch cases should end with an unconditional "break" statement. You can find more information about the issues here: https://dev.eclipse.org/sonar/rules/show/squid:S1118 https://dev.eclipse.org/sonar/rules/show/squid:S128

    Please let me know if you have any questions.

    Faisal Hameed

    opened by faisal-hameed 0
  • Code quality fix - String literals should not be duplicated.

    Code quality fix - String literals should not be duplicated.

    This pull request is focused on resolving occurrences of Sonar rule squid:S1192 - String literals should not be duplicated. You can find more information about the issue here: https://dev.eclipse.org/sonar/rules/show/squid:S1192

    Please let me know if you have any questions.

    Faisal Hameed

    opened by faisal-hameed 0
  • Code quality fix - Collapsible

    Code quality fix - Collapsible "if" statements should be merged.

    This pull request is focused on resolving occurrences of Sonar rule squid:S1066 - Collapsible "if" statements should be merged. You can find more information about the issue here: https://dev.eclipse.org/sonar/rules/show/squid:S1066

    Please let me know if you have any questions.

    Faisal Hameed

    opened by faisal-hameed 0
  • App zu F-Droid hinzufügen

    App zu F-Droid hinzufügen

    F-Droid ist eine alternative zum Play-Store, die es erlaubt freie Open.Source Apps hochzuladen.

    https://gitlab.com/fdroid/fdroiddata/blob/master/CONTRIBUTING.md

    opened by djschilling 0
  • Highscore

    Highscore

    Damit sich die Spieler mit anderen vergleichen können soll der Highscore zu einem Service hochgeladen werden.

    Die Google Play Games Services bieten dies an.

    enhancement 
    opened by djschilling 2
Releases(v2.2.1)
Owner
David Schilling
David Schilling
Wordle-solver - This application supports in finding the correct answer to the daily word puzzle game Wordle

Wordle-solver - This application supports in finding the correct answer to the daily word puzzle game Wordle

Jiri Bakker 1 Jan 19, 2022
The Privacy Friendly 2048 app is an addictive puzzle game

Privacy Friendly 2048 The Privacy Friendly 2048 app is an addictive puzzle game. The game is considered to be won if you reach the number 2048 by push

SECUSO 17 Dec 15, 2022
Tangler a small casual puzzle inspired by the Tantrix board game but with a different twist.

Tangler game. Written in Kotlin, for desktop (Java JAR) and Android. The iOS module is present but was not built or tested.

Andrzej Novosiolov 6 Jan 6, 2023
Minesweeper is a single-player puzzle video game

Minesweeper Minesweeper is a single-player puzzle video game. The objective of the game is to clear a rectangular board

ADITYA RAJ 1 Jun 26, 2022
This is an application that is about an X / O game. You can enter the names of the game, and there is also a screen for those who win and there is a button to continue playing and the game determines the result of each player

Game-X-O This is an application that is about an X / O game. You can enter the names of the game, and there is also a screen for those who win and the

Mohamed Rafat 2 Aug 20, 2022
Our maze game is an 2d-animation game developed using android studio.

Our maze game is an 2d-animation game developed using android studio. The game consists of a ball and a board with a hole in the center of it. We are using accelerometer as controller to guide ball towards the hole. T

Suraj Devgan 6 Nov 29, 2022
Game made with Korge (Kotlin Multiplatform game engine)

MolesAttack Kotlin Multiplatform Game Play Html/js: https://feliperce.github.io/MolesAttack-Distribution/ Jar: https://feliperce.github.io/MolesAttack

Felipe Rodrigues 10 May 30, 2022
An easy open source Android Native Game FrameWork.

JustWeEngine - Android Game FrameWork An easy open source Android Native Game FrameWork. Engine Flow Chart How To Use? Import Engine's module as Libra

JustWe 767 Dec 8, 2022
Desktop/Android/HTML5/iOS Java game development framework

Cross-platform Game Development Framework libGDX is a cross-platform Java game development framework based on OpenGL (ES) that works on Windows, Linux

libgdx 20.9k Jan 8, 2023
Free Android 2D OpenGL Game Engine

AndEngine Donations While developing AndEngine was a lot of fun, it also also consumed many(!) months of my life. It actually continues to cost me a s

Nicolas Gramlich 3.2k Jan 5, 2023
A cross-platform Java game Engine (Framework) , support JavaFX / Android / IOS / HTML5 / Linux / MAC / Windows

Loon Game Engine (Java Game Framework) EN / KR Free Game Resources Links Download Loon Game Engine Only Android-studio Template : androidstudio-templa

cping 502 Jan 4, 2023
Android Kotlin: Matching Kitties: A Game Inspired by Cats

Android Kotlin: Matching Kitties: A Game Inspired by Cats A kotlin based Android memory game Screenshots | | | | | | | | | Viewing the App You can clo

Ryan Jandrick B. Obeles 20 Aug 1, 2022
a bitcoin key collision game for android

BitteryApp BitteryApp is an opensource bitcoin key collision game for Android. How to Build BitteryApp source code build in chromium building environm

null 3 Jul 12, 2021
SMBClone - SMD clone custom game engine. (Desktop + Android)

SMBClone Simple crossplatform game engine for like SMB game! Supported platforms

Victor Varenik 4 Jul 4, 2022
Android Game App made with kotlin. Allows to play online on the same network!

Reversi - Kotlin/Android Project made for Arquiteturas Móveis at ISEC 2021/2022 Notes Build gradle to run app or install the 'reversi.apk' directly on

André Lopes 1 Feb 5, 2022
TicTacToe Game App For Android

TicTacToe App Android Tic-tac-toe, noughts and crosses, or Xs and Os is a paper-

null 0 Jan 20, 2022
Android kotlin basics cook game

Android kotlin basics cook game

null 0 Feb 3, 2022
Android 2048 Game in jetpack compose

Android 2048 Game in jetpack compose A simple 2048 game written with 100% Jetpack Compose. Features Jetpack Compose Material 3 MVVM Adaptable theme Da

João Manaia 10 Oct 1, 2022
A minimalist Android physics game written in Kotlin & libGDX

A minimalist Android physics game with 400.000+ downloads, written in Kotlin & libGDX

Luca1152 2 Dec 19, 2022