edit: hab grad noch mehr probleme mit meinem ansatz entdeckt. muss das mal ausprobieren. ich lass es trotzdem mal stehen, aber... wie gesagt - glaub gerade, dass ich da ein paar denk-fehler drinnen hab,
Also, in pseydocode:
boolean success = true; //haelt fest ob die runde bestanden wurde oder nicht
int interval = 5; // um die geschwindigkeit mit der des spiel schneller wird modifizieren zu koennen
int loopCounter = 0; //zaehlt, wie viele runden schon gespielt wurden
int time = 1000; //legt fest, wie lange die erste runde ist
int start; // variable in der die momentane zeit gespeichert wird
void loop{
if (success) { //wenn die letzte runde bestanden wurde, wird die schleife ausgefuehrt
start = millis(); //registriert, wann die runde begonnen wurde
while (millis - start < time - loopCounter * interval) { //legt fest wie lange die runde dauert - haengt davon ab, wieviele runden es schon gab
success = false; //am anfang ist die runde noch nicht bestanden
light random LEDs; //irgend ein code, der halt nur eine bestimmte zeit lang ausgefuehrt wird
if (correct button pushed){ //wenn der spieler richtig reagiert...
sucess = true; //... hat er die runde bestanden und die naechste runde kann beginnen
}
}
else { // hat er die runde nicht begonnen, zeige das ergaebnis an
print result
}
loopcounter++;
}
sry - ist schrecklich zu lesen - kopiers vielleicht in die arduino ide, damit es besser lesbar ist.
kanns grad nicht testen, da ich noch in der uni bin, aber ich glaub ich kapier jetyt dein problem: habe vage in erinnerung, dass sich while() mit der loop schleife manchmal merkwuerdig benimmt. sprich es koennte sein, dass loopcounter schneller ansteigt als gedacht :-/
muss dass zu hause mal anschaun - bin auch nicht so der profi.
hoffe ich hab dir trotzdem bisschen geholfen.
lg
p.