Arduino Spiel programmieren ich komme nicht weiter?

2 Antworten

Das Problem ist, dass die Funktion random() nicht zufällig ist. ICh würde dir vorschlagen, dass du die Funktion random mit einem Auslesewert (analogRead) von einem Analogen Pin multiplizierst, der nicht verwendet wird. Dort ließt man dann nämlich minimal statische Ladungen aus, die garantiert zufällig sind.

Woher ich das weiß:Hobby
MrCommandBlock  23.06.2020, 09:41

Nein, das ist nicht das Problem...

Da es hier um eine nicht Kryptisch relevante Anwendung geht ist das komplett unnötig!

Das random() Pseudozufallszahlen generiert ist klar, aber nicht schlimm, da es hier um eine Menschliche Eingabe als "Spiel" ist. Und der Mensch davor kann mit Sicherheit nicht im Kopf nachvollziehen, welche die nächste Random-Zahl wird!

0
PeterKremsner  23.06.2020, 09:47
@MrCommandBlock

Der Pseudozufallszahlgenerator welcher in der Lib ist, ist nicht sonderlich gut und ein Mensch kann bei diesem durchaus die Folge erkennen. Außerdem ist der per default immer mit 0 geseedet womit die Sequenz gleich bleibt.

Mit dem Analogread macht man den einfach nur besser und ein Mensch erkennt dann keine Zyklen mehr.

Man kann natürlich auch nur den ersten Seed per ADC machen und den Mersenne Twister implementieren.

0

Naja damit es nur 5 mal passiert benutzt du eben eine schleife die das nur 5 mal tut und dann wartest du bis die eingabe kommt.

Am einfachsten hast du dafür nach deiner schleife die, die lichter anzeigt noch eine weitere schleife die dauerhaft die tasten abfragt(polling).
Dann nimmst du einen array der länge 5 in den du die nummern der knöpfe die gedrückt werden der reihenfolge nach einträgst, z.B..