Alcatraz : Das Problem - Alcatraz : Das Applet - Bericht & Sourcecode - Die Autoren & Kontakt 
Bericht & Source

Alcatraz - Autoren

Source

Die bereitgestellten Java-Files unterliegen der Attribution-ShareAlike-License der CC:

Controlpanel.java
Arrow.java
Coordinates.java
DirectionField.java
Speed.java
Schwimmer.java
Effect.java
Freezing.java
Shark.java
Wind.java
Stroemung.java


Bericht


Das Programm im Detail

Bild 1 Geschrieben als Java-Applet. Strukturiert wird die Simulation durch neun Klassen und ein Interface mit insgesamt über 31000 Zeichen.
Das Programm wurde als Mischung zwischen Spiel und Simulation konzipiert. So ist es möglich, sich die Schwierigkeit nach Belieben mit zusätzlichen hungrigen Haifischen oder starker Böe zu erhöhen und gleichzeitig bleibt der Simulationsaspekt durch diverse Einstellungsmöglichkeiten wie Editierung von Strömung oder Strömungsvektorfeld gewahrt.

Bild 2 Bei der Erstellung wurde darauf geachtet, dass das Programm weiter ausgebaut werden könnte. Deshalb wurden diverse Objekte, wie Pfeile, Effekte (Sharks, Flows …) als eigene Klassen implementiert und bei der Instanzierung im Spiel sind theoretisch keine Grenzen gesetzt, da Pfeile, Strömungen und Haifische in sog. Linked-Lists implementiert sind. Das Spiel läuft nicht rundenbasiert ab, sondern zeitkontinuierlich. Sprich im Hintergrund läuft ein Zähler welcher alle paar Millisekunden die entsprechenden Funktionen aufruft (z.B. neue Position des Schwimmers berechnen oder Neuzeichnen).


Realisierung der Effekte

- Freezing
Dieser Effekt, welcher das Unterkühlen in der kalten Strömung simulieren soll, ist als einfacher Countdown mit ansprechender Ausgabe aufgebaut.

-Strömung
Bild 3 Die Strömungen sind Objekte mit einem Ursprung, einer Richtung und einer Stärke. Die Auswirkung auf den Flüchtling wird vereinfacht durch den Kehrwert der Wurzel aus dem Abstand zur Gerade durch den Strömungsursprung in Richtung der angegebenen Richtung multipliziert mit der Stärke der Strömung. Bei der Berechnung der nächsten Position des Schwimmers werden die Stärken aller Störmungen aufaddiert und daraus wird der nächste Ort berechnet. Grafisch dargestellt werden die Strömungen durch Objekte der class Arrow.

- Wind
Der Wind ist eine Strömung, die keinen Ursprung hat, d.h. die Stärke ist überall dieselbe.

- Sharks
Die Geschwindigkeit und Richtung der Haifische ist je nach Abstand zum Schwimmer mehr oder weniger zufällig. Mit zunehmendem Hunger wird der Hai aggressiver und wird bei der Jagd intelligenter.

- Grenzabfragen
Die komplexen Strukturen der Küstengebiete werden durch Superposition von einfachen Abfragen von Rechtecken approximiert.

Die grundsätzlichen Programmabläufe und Kontrollstrukturen wurden alle in der (Main-)Klasse Controlpanel implementiert.