i

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.

Suche

v
2.8.7.3
www.inf-schule.de/programmierung/spiele-python/zahlen-zufall/zahlen-vergleichen

Rückmeldung geben