|
Fachhochschule
Augsburg
Praktikum
"Softwareentwicklung
und Programmierung
Teil 1"
Studiengang Interaktive Medien, 01.12.2008 |
Die Klasse Car
soll ein einfaches Modell der Dynamik eines Autos realisieren.
Es soll folgendes Verhalten in
Form von noch zu definierenden Methoden unterstützt werden.
Denken Sie daran den Zustand des Autos über Instanzvariablen
geeignet darzustellen.
Dies geht erst dann, wenn der Motor gestartet wurde.
Es kann nur ein Wert zwischen 0 und einer maximalen Geschwindigkeit gewählt werden, welche für jedes Auto bei der Erzeugung festgelegt wird und anschließend nicht mehr verändert werden kann (kein nachträgliches Tuning).
Verwenden Sie als Einheit für die Geschwindigkeit m/s. Dann sollten die zugehörigen Bewegungen auf dem Bildschirm vernünftig beobachtet werden können. (Zur Erinnerung: 1 m/s entspricht 3,6 km/h).
C) Ortsänderung.
Sie können vereinfachend davon ausgehen, daß die Bewegung nur auf einer geraden Linie (parallel zur x-Achse) erfolgt (Highway durch den amerikanischen mittleren Westen).
Definieren Sie zu diesem
Zweck eine private Methode, die bei jedem Aufruf auf Basis der
aktuellen Geschwindigkeit und der seit dem letzten Aufruf vergangenen
Zeit den neuen Ort des Autos berechnet. Zur Berechnung der vergangenen
Zeit können Sie die Methode System.currentTimeMillis()
verwenden. Diese liefert die
aktuelle Zeit in Millisekunden zurück. Tipp: Verwenden Sie
eine Instanzvariable um den letzen Zeitpunkt zwischen zwei
Methodenaufrufen abzulegen.
Überlegen Sie, wann die Methode zur Berechnung des Weges
jeweils aufgerufen werden sollte?
Der momentane
Aufenthaltsort eines Autos muss über die Methoden getX()
und getY()
abgefragt werden können. Diese Aufrufe sollten zu beliebigen
Zeiten erfolgen können (also jeweils nach kurzen
Zeitintervallen wie in der Animation oder z. B.auch erst nach einer
halben Stunde). Auch wenn sich zwischendurch die Geschwindigkeit
verändert hat, soll der richtige Ort zurückgeliefert
werden.
Das Auto verfügt
über einen Tank mit einer maximalen Füllmenge (in
Litern).
In diesen Tank kann per Aufruf einer Methode tanken()
mit geeignetem
Übergabeparameter Sprit eingefüllt werden.
Beim Fahren verbraucht das
Auto Benzin. Verwenden Sie zur Berechnung der Abnahme des Tankinhalts
eine Tabelle, in der (grob gerastert) für verschiedende
Geschwindigkeiten der Verbrauch abgelegt ist.
Verfahren Sie bei der Aktualisierung des Tankinhalts ähnlich
wie bei der jeweiligen Neuberechnung des Aufenthaltsortes.
Bitte nicht vergessen: Sobald der Tank leer ist, bleibt das Auto natürlich stehen, d. h. die Geschwindigkeit geht auf 0 zurück und der Motor "stirbt ab".
Zum Demonstrieren des Verhaltens Ihrer Auto-Implementierung verwenden Sie bitte den beiliegenden Testrahmen mit Animation.
Er umfaßt die Klassen in den Dateien Traffic.java, CarTest.java und eine "Auto-Rumpfimplementierung" in Car.java. Beachten Sie dabei, dass die Animation die in der Klasse Car definierten get-Methoden braucht, um die entsprechenden Attributwerte darstellen zu können. Ihre Aufgabe ist es, die Implementierungen der Methoden gemäß der Aufgabenstellung zu verändern. Die Klasse Traffic braucht in der Regel nicht angefasst zu werden.
Fügen Sie in der main()-Methode
von CarTest
den Aufruf der verschiedenen Car-Methoden in einer geeigneten
Reihenfolge hinzu. Wenn zwischen den Aufrufen Zeit vergehen soll, so
erreichen Sie das durch die Methode Traffic.waitAWhile().