Zufallszahlen
In diesem Abschnitt lernst Du, wie man in einem Programm bestimmte Eigenschaften zufällige Werte annehmen lassen kann. Viele Spiele leben davon, dass bestimmte Dinge zufällig passieren, so dass der Spieler sie nicht voraussehen kann.Programm zum Ausprobieren
Teste das folgende Programm, wobei Du es mindestens fünf mal starten solltest.
from random import *
WIDTH = 800
HEIGHT = 600
TITLE = "Zufall"
raumschiff = Actor("raumschiff_gruen.png")
raumschiff.x = randrange(0,WIDTH)
raumschiff.y = randrange(0,HEIGHT)
def draw():
screen.blit("sterne.png",(0,0))
raumschiff.draw()
Erklärung
Die drei hervorgehobenen Zeilen sind neu; wir betrachten sie nacheinander:
from random import *
Um Zufallszahlen zu erzeugen, benötigt man Befehle, die nicht
standardmäßig in der Programmiersprache Python eingebaut sind. Um diese
Befehle zu benutzen, muss eine Befehlssammlung, eine so genannte
Bibliothek, importiert werden. Die Bibliothek für Zufallszahlen heißt
random
(engl. random: Zufall). Wörtlich bedeutet die Zeile: „Aus der
Bibliothek random
importiere alle Befehle.“ Der Stern steht dabei für
„alle Befehle“.
raumschiff.x = randrange(0,WIDTH)
raumschiff.y = randrange(0,HEIGHT)
weisen den Eigenschaften x und y des Objekts raumschiff
zufällige
Werte zu. Diese Werte liegen jeweils im Bereich (engl. range) zwischen
dem ersten und dem zweiten Wert in der Klammer (wobei der zweite selbst
nicht mehr vorkommen kann). Im ersten Fall kann z.B. die Eigenschaft
x
danach Werte zwischen 0 und 799 annehmen (weil
WIDTH
den Wert 800 hat).
Aufgabe 1: Zufällige Position auf der linken Bildschirmhälfte
Ändere das Programm so ab, dass das Raumschiff nur in der linken Hälfte des Bildschirms zufällig positioniert wird.
Aufgabe 2: Zufällige Position auf der unteren Bildschirmhälfte
Ändere das Programm so ab, dass das Raumschiff nur in der unteren Hälfte des Bildschirms zufällig positioniert wird.
Aufgabe 3: Zufälliger Winkel
Ergänze eines der Programme so, dass auch der Winkel einen zufälligen Wert zwischen 0 und 360° hat.
Aufgabe 4: Zufälliger Winkel "irgendwie nach oben"
Ändere das Programm so ab, dass das Raumschiff zwar einen zufälligen Winkel hat, aber trotzdem eine Richtung "irgendwie nach oben" hat.
Aufgabe 5: "Reparierte" Meteoriten
Ändere das Programm aus dem Abschnitt "Verzögerte, einmalige Aktionen" so ab, dass eine Sekunde nach einem Treffer des Lasers der Meteorit (natürlich wieder in seiner ursprünglichen Form) wieder an oberen Fensterrand gesetzt wird. Die x-Koordinaten soll allerdings zufällig gewählt werden.