Brainysnake ist ein Snake-Spiel bei welchen ihr eure Schlange nicht aktiv selbst steurt, sondern über einen Bewegungsalgorythmus vorher festlegt, wie eure Schlange sicht verhalten soll. Dabei werden pro Spiel mehrere autonome Schlangen in einem Level geladen. Dann beginnt der Kampf um den Sieg. Gewonnen hat, wer nach 1000 Zügen (Anzahl der Züge ist konfigurierbar) noch lebt und die meisten Punktee hat.
https://github.com/FlorianTim/BrainySnake
Bitte sendet euren Spieler bis 23:59 Uhr (30.09.2017) an folgende Emailadresse: [email protected] Falls abweichend, vergesst nicht eine Kontaktmöglichkeit anzugeben(für Rückmeldungen).
- checkout project
- run gradlew idea or for reinit gradlew cleanidea idea in your favorite console (On Unix :/gradlew cleanidea idea)
- open the generated .ipr file or gradlew desktop:run
- create a new Application Configuration
- set de.adesso.brainysnake.desktop.DesktopLauncher as Main class
- optional: set [projectPath]\BrainySnake\core\assets as Working directory
- optional: set desktop as classpath of module
- run
- checkout project
- import the Project with File>Import>Gradle>Existing Gradle Project
- create a Run Configuration and choose Java Application
- Set brainySnake-desktop as projecct
- Set de.adesso.brainysnake.desktop.DesktopLauncher as Main class
- Save the new configuration
- run
- Pro Runde kann die Schlange sich um ein Feld nach links, rechts oder nach vorne bewegen.
- Eine Schlange besteht aus Körper und Kopf.
- Wenn die Schlange mit einem Levelelement kollidiert, verliert sie ein Feld ihres Körpers. Wenn eine Schlange keine Körperelemente übrig hat, stirbt sie und scheidet aus der Spielrunde aus.
- Wenn die Schlange einen Punkt findet, verlängert sich ihr Körper um ein Feld.
- Eine Schlange kann eine andere Schlange beißen. In diesem Fall erhält die Schlange einen Punkt und geht in den Ghostmode
- Im Ghostmode ist die Schlange vor bissen anderer Schlangen geschützt.
- Im Ghostmode kann die Schlange keine Punkte konsumieren.
- Eine Schlange besitzt ein Sichtfeld. Das Sichtfelst ist ein zweidimensionales Raster, über welchen die Schlange folgende Informationen abfragen bzw. sehen kann:
- Levelelemente (Wände, Hindernisse)
- Punkt
- Andere Schlangen
- Wenn eine Schlange ein invalide Steueranweisung erhält (bspw. ist eine 180* Wendung nicht möglich) wechselt die Schlange in den ConfusedMode. In diesem Modus erhält die Schlange einen Punkt Abzug und fängt an zu Blinken.
Implementiere deine Schlangensteuerung in der Klasse YourPlayer. Dazu kannst du dich an den Beispielimplementierungen der Klassen SamplePlayer und SamplePlayer2 orientieren. Gib deiner Klasse einen eindeutigen Namen und gib diesen an über getPlayerName auch an die Spielumgebung zurück. Um mit der Schlangensteuerung vertraut zu werden, wird initial bei Spielstart eine Schlange erzeugt, die über die Pfeiltasten der Tastatur steuerbar ist.