Das lernst du heute
- Zufallswerte zwischen 0 und 1
- Bereiche skalieren
- Lichteffekte
Im Notgang soll eine Lampe flackern wie ein Wackelkontakt, über der Bar wechselt eine LED-Anzeige bunt die Farbe. Mit festen Werten oder einem Zähler wirkt das wie ein Uhrwerk – nach drei Sekunden sieht jeder das Muster. Was fehlt, ist Zufall.
rand: eine Zahl zwischen 0 und 1
rand z # 0 <= z < 1, jedes Mal neu
rand schreibt bei jedem Aufruf eine neue Zufallszahl ins Register. Sie ist mindestens 0 und immer kleiner als 1 – genau 1 kommt nie heraus. Brauchst du denselben Zufallswert zweimal, rufst du rand einmal auf und benutzt danach das Register. Ein zweiter Aufruf liefert eine andere Zahl.
Bereiche skalieren
Aus 0 bis 1 machst du jeden Bereich mit mul (Breite) und add (Anfang):
| Ziel | Rechnung |
|---|---|
| 0 bis unter 10 | mul z z 10 |
| 20 bis unter 30 | mul z z 10, dann add z z 20 |
| ganze Zahl 0 bis n − 1 | mul z z n, dann floor z z |
| Würfel 1 bis 6 | mul z z 6, floor z z, add z z 1 |
| „ja“ in 30 % der Fälle | slt ja z 0.3 |
Die letzte Zeile ist oft die nützlichste: slt vergleicht die Zufallszahl mit einer Wahrscheinlichkeit und liefert in etwa 30 von 100 Fällen eine 1.
Lichteffekte
Eine Lampe kennt nur On. Flackern heißt also: Jeden Takt wird neu gewürfelt, ob sie leuchtet.
rand z
slt an z WAHRSCH # WAHRSCH = 0.8: an mit 80 %
sbn LAMPE HASH("Gang") On an
Eine LED-Anzeige kann zusätzlich die Farbe wechseln. Die zwölf Farben von Color.Blue (0) bis Color.Purple (11) sind einfach Zahlen:
rand z
mul farbe z FARBEN # FARBEN = 12
floor farbe farbe # 0 bis 11
sbn ANZEIGE HASH("Bar") Color farbe
Nimm für ganze Zufallszahlen floor, nicht round. round macht aus 0 bis unter 12 dreizehn mögliche Werte: Eine Farbe 12 gibt es gar nicht, und die 0 und die 12 kommen nur halb so oft wie alle anderen.
Jeden Takt neu würfeln ergibt bis zu zwei Wechsel pro Sekunde – für Flackern gut, für ruhige Stimmung zu hektisch. Würfle stattdessen eine Wartezeit, etwa 2 bis 8 Takte, und zähl sie herunter, bevor die Lampe wieder umschaltet.
Übung
Aufgabe
Ein Hebel „Party“ schaltet die LED-Anzeige „Bar“ in den Partymodus.
- Hebel an (
Open= 1): jeden Takt eine Zufallsfarbe von 0 bis 11 aufColorund eine Würfelzahl von 1 bis 6 aufSetting - Hebel aus: Farbe
Color.White,Setting0 - Fehlt der Hebel, gilt „aus“
Der Hebel wird schon gelesen, die Ausgabe steht auch schon da. Es fehlen die beiden Zufallswerte. round ist hier verboten.
Hinweise
Hinweis 1
Zufallsfarbe: rand z, mul farbe z FARBEN, floor farbe farbe.
Hinweis 2
Würfel: ein zweites rand z, mal SEITEN, floor, dann add zahl zahl 1.
Hinweis 3
Die select-Zeilen am Ende wählen schon zwischen Zufall und festen Werten.
Quiz
5 Fragen. Ab 60 % ist das Quiz bestanden – die Auswertung macht der Server.
Tag abschließen
- Übung im Simulator bestanden
- Quiz mit mindestens 60 % bestanden
Ohne Konto wird der Fortschritt nur in diesem Browser gespeichert.
Fehler in dieser Lektion melden
Zum Melden bitte anmelden. Anmelden