Zahlen vergleichen
In diesem Abschnitt lernst Du, wie man in einem Programm Dinge abhängig von Zahlenwerten passieren lassen kann. Da Spielsituationen in der Regel durch Zahlen beschrieben werden, ist das ganz wichtig, um abhängig von der jeweiligen Situation Dinge im Spiel passieren zu lassen.Program zum Ausprobieren
from random import *
WIDTH = 800
HEIGHT = 600
TITLE = "Mit Zahlen entscheiden"
raumschiff = Actor("raumschiff_gruen.png")
raumschiff.x = randrange(0,WIDTH)
raumschiff.y = randrange(0,HEIGHT)
if raumschiff.y > 400:
raumschiff.image="raumschiff_blau.png"
def draw():
screen.blit("sterne.png",(0,0))
raumschiff.draw()
Erklärung
Betrachten wir die Bedingung:if raumschiff.y > 400:
Hier wird überprüft, ob die y-Koordinate des Raumschiffs einen Wert größer als 400 hat. Mit anderen Worten: ob sich das Raumschiff im unteren Drittel des Bildschirms befindet. In diesem Fall wird das Raumschiff blau eingefärbt.
Vergleichsoperator | Bedeutung |
---|---|
> |
größer als |
< |
kleiner als |
>= |
größer oder gleich |
<= |
kleiner oder gleich |
!= |
ungleich |
== |
gleich |
Aufgabe 1: Gefährliche Bodennähe
Ändere das Programm so, dass ein explodierendes Raumschiff angezeigt wird, wenn die y-Koordinate des Raumschiffs den Wert 500 übersteigt.
Aufgabe 2: Drehung nach oben in höheren Bereichen
Erweitere das Programm so, dass die Spitze des Raumschiffs außerdem nach oben gedreht wird, wenn das Raumschiff im oberen Drittel des Bildschirms liegt.
Aufgabe 3: Zufallsposition der Kanone bei Randkontakt
Wir hatten in "Verzögerte, einmalige Aktionen" bereits ein Programm, bei dem man die Kanone mit zwei Pfeiltasten steuern konnte. Nun soll der Spieler bestraft werden, wenn er mit der Kanone an den linken oder rechten Rand stößt: Die Kanone soll in diesem Fall auf einen zufällige x-Koordinate gesetzt werden.
Aufgabe 4: "Kleben an den Rändern"
Das zufällige Setzen nach einer Randüberschreitung ist allerdings
nur eine Möglichkeit. Eine andere könnte so aussehen: Wenn die
Eigenschaft x
der Kanone kleiner als 0 ist, soll die
Eigenschaft x
wieder auf 0
gesetzt werden.
Wenn die Eigenschaft x
größer als WIDTH
ist,
dann soll die Eigenschaft x
wieder auf WIDTH
gesetzt werden. Die Kanone bleibt praktisch an den Rändern kleben.
Aufgabe 5. Ein "geschlossenes Universum"
Ändere Deine Lösung aus Aufgabe 4 so ab, dass das Raumschiff nicht "an den Rändern hängenbleibt", jeweils gegenüberliegenden Seite wieder erscheint, wenn es zu mehr als der Hälfte über einen Rand hinausgegangen ist.