diff --git a/SimonSaysProgramm/SimonSaysProgramm.ino b/SimonSaysProgramm/SimonSaysProgramm.ino index dfcf507..c46400f 100644 --- a/SimonSaysProgramm/SimonSaysProgramm.ino +++ b/SimonSaysProgramm/SimonSaysProgramm.ino @@ -35,29 +35,75 @@ void loop() { case 0: // neue Runde //Gruppe 1 start =============================================================================== - + Tft.setCursorCharacter(1, 1); + Tft.print("neue Runde in "); + for (int j = 3; j > 0; j--) { + Tft.setCursorCharacter(1, 15); + Tft.print(String(j) + " "); + delay(1000); + } + level = 0; + + for (int i = 0; i < MAXLEVEL; i++) { + musterVorgabe[i] = random(0, 4); + musterEingabe[i] = -1; + } + state = 1; //Gruppe 1 ende ================================================================================ break; case 1: // Ausgabe aktuelle Runde //Gruppe 2 start =============================================================================== - - - + portMode(1,2); + for(int i=0;i<=level;i++){ + digitalWrite(buttons[mustervorgabe[i]], LOW); + delay(250); + digitalWrite(buttons[mustervorgabe[i]], HIGH); + delay(250); + } //Gruppe 2 ende ================================================================================ break; case 2: // Eingabe aktuelle Runde //Gruppe 3 start =============================================================================== + pinMode(BUTTON0, INPUT); + pinMode(BUTTON1, INPUT); + pinMode(BUTTON2, INPUT); + pinMode(BUTTON3, INPUT); + Tft.setCursorCharacter(1,1); + Tft.print("Eingabe "); + for(int i = 0, i <= level, i++) + { + while(musterEingabe[i] == -1) + { + for(int j = 0; j < 4, j++) + { + while(digitalRead(buttons[j]) == false) + { + musterEingabe[i] = j; + } + } + delay(100); + } + Tft.print("."); + } //Gruppe 3 ende ================================================================================ break; case 3: // Vergleich Eingabe/Ausgabe //Gruppe 4 start =============================================================================== - - - + for(int i{0}; i <= level; i++) + { + if(musterEingabe[i] == musterVorgabe[i]) + state = 4; + else + { + state = 5; + break; + } + } + break; //Gruppe 4 ende ================================================================================ break; case 4: // geschafft, Runde hochzählen und auf Display ausgeben @@ -73,7 +119,13 @@ void loop() { case 5: // verloren //Gruppe 6 start =============================================================================== + Tft.setCursorCharacter(1,1); + Tft.print("Du hast verloren :( ")); + Tft.setCursorCharacter(3,1); + Tft.print(" Bis Level: " + String(level) + " erreicht."); + delay(5000); + state = 0; //Gruppe 6 ende ================================================================================ break;