Arduino Spiel programmieren ich komme nicht weiter?
Heyy, also ich möchte mit dem Arduino Uno ein Spiel programmieren: 5 LEDs leuchten in zufälliger Reihenfolge auf und dann muss man auf 5 Tastern die Reihenfolge richtig nachdrücken. Ich habe es jetzt schon programmiert, dass die LEDs in zufälliger Reihenfolge aufblinken,
aber ich weiß erstens nicht, wie ich es schaffe, dass nur fünfmal eine zufällige LED aufleuchtet und sich dass ganze nicht die ganze Zeit wiederholt, sodass man auch Zeit hat die Taster zu drücken
und zweitens weiß ich nicht, wie ich programmiere, dass der Arduino weiß, welcher Schalter zu welcher LED gehört und dass es in der richtigen Reihenfolge nachgedrückt werden muss.
Ich freue mich sehr über eure Hilfe. Liebe Grüße
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.
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.
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..
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!