Den Timer benutzen
Spielregeln
Die Spielregeln von Snap sind schnell erklärt: Zwei Spieler spielen gegeneinander und sollen nach einer zufälligen Zeit möglichst schnell einen Gegenstand, z.B. ein Bonbon schnappen. Das Startsignal wird akustisch und visuell von einem Timer gegeben. Die minimale und maximale Zeit, die der Timer wartet, können angegeben werden.
Benutzung des Timers
Die Timer-Klasse ist schon fertig vorgegeben. Die genaue Implementierung musst du nicht verstehen, um den Timer zu benutzen. Alle wichtigen Informationen findest du im Klassendiagramm:
Aufgabe 1
(a) Öffne das Projekt Snap (Entpacken nicht vergessen!),
schaue dir die main-Funktion an und beschreibe Zeile für Zeile,
was dort passiert.
(b) Passe die minimale und maximale Zeit nach deinen Wünschen an und spiele das Spiel. Stellt euch dazu zu zweit gegenüber auf, z.B. an einem Tisch, und haltet die Hände auf dem Rücken. Eine andere Person startet den Timer. Sobald das Signal ertönt, schnappt ihr nach dem Gegenstand, z.B. einem Bonbon, das in der Mitte des Tisches liegt. Wer schneller ist, hat gewonnen.
Alternativ zur Version in BlueJ kannst du hier eine Online-Version nutzen. Diese hat allerdings keine Audio-Ausgabe, sondern gibt nur einen Text aus.
class Timer {
var min: Int = 0
var max: Int = 0
fun starten() {
// Den Inhalt dieser Methode musst du nicht verstehen.
// Du musst nur wissen, dass die Methode den Timer startet.
val bis = if (max <= min) max else min + java.util.Random().nextInt(max - min)
for (i in 0 until bis) {
try {
Thread.sleep(1000)
} catch (e: Exception) {
e.printStackTrace()
}
}
println("Timer abgelaufen!")
}
}
fun main() {
val timer = Timer()
timer.min = 5
timer.max = 10
timer.starten()
}
Aufgabe 2
Teste das Verhalten des Timers für unsinnige Werte, z.B.:
fun main() {
val timer = Timer()
timer.min = -5
timer.max = -10
timer.starten()
}
Welches Verhalten erwartest du? Was passiert tatsächlich? Welches Verhalten würdest du dir wünschen?