6.2 🚧 Projekt Reaktionsspiele

Projektziele sind neben der Spiele vor allem durch systematische Arbeitsweise in 45-60 min eine potentiell funktionierende Lösung aufs Papier zu kriegen.
Erlaubte Hilfsmittel: Papier, Formelsammlung und nach abgeschlossenem Entwurf die Entwicklungsumgebung zum Testen und Verfeinern.
Sich gleich an den Rechner zu setzen und auf Zustandsdiagramme zu verzichten dauert in der Regel länger..
Zustandsdiagramm ist Pflicht!

(Pseudo-) Zufall erzeugen mit random(…)

Synopsis: Arduino-Doku 🔗random()  🔗randomSeed() 📖Pseudozufall

Die Funktion random(max) bzw. random(min, max) erzeugen einen Pseudozufall im Bereich 0..max-1 bzw. min..max-1.
Der Rückgabetyp ist long. Beispiel: random(6) bzw. random(0,6) gibt zufällige Zahlen zwischen 0..5 zurück.

randomSeed(…) setzt den „Samen“ des Pseudo-Zufalls

Die Zufallszahlen-Funktion merkt sich intern eine Zufallszahl. Bei jedem Aufruf wird diese Zahl durch Mathe-Voodoo™️ neu berechnet. Aus dieser Zahl wird der Rückgabewert berechnet. Welchen Wert hat die interne Zufallszahl beim Start, nach dem Reset?

Die Zufallszahlen-Funktion erzeugt nach Reset immer die genau gleiche Zufallszahlen-Reihe wenn nicht ein zufälliger Startwert für die Zufallszahlen mit randomSeed(…) gesetzt wird.

In der Arduino-Doku wird vorgeschlagen in setup() mit randomSeed(analogRead(0)); den Samen zu setzen, dabei wird davon ausgegangen, dass analogRead(0) bei offenem Eingang einen zufälligen AD-Wert liefert. In der Praxis konnte ich oft immer den selben Wert feststellen, daher funktioniert diese Methode nicht zuverlässig. Besser man verwendet millis() um bei einer Nutzeraktion den Zufall-Samen zu setzen. Beispiel: randomSeed(millis()); wenn eine Taste gedrückt wurde.

Reaktionsspiel für zwei: Wer ist schneller?

Drei Tasten: Start, Spieler1, Spieler2. Eine LED und oder ein Piezo-Lautsprecher. Eine Anzeige für die Reaktionszeit (7-Segment, LCD, Servo, Schrittmotor).
Nach Start leuchtet nach einer zufälligen Zeit eine LED auf bzw. ein Ton wird ausgegeben, wer zuerst auf seinen Taster drückt hat gewonnen, der Taster leuchtet und die Zeit wird angezeigt.

Reaktionsspiel für einen: 2 Tasten oder Töne schnell richtig zuordnen

Drei Tasten: Start, links, rechts. Zwei oder mehr LED und oder ein Lautsprecher. Eine Anzeige für die Reaktionszeit (7-Segment, Servo, Schrittmotor).
Nach Start leuchtet nach einer zufälligen Zeit eine von mehreren LED auf bzw. ein spezifischer Ton wird ausgegeben, eine dazugehörige Taste soll möglichst schnell gedrückt werden. Die Reaktions-Zeit wird angezeigt.

Ein Kommentar

Die Kommentare sind geschlossen.