int button[6] = { 2, 3, 4, 5, 6, 7}; int ledpin[6] = { 8, A0, 10, 11, 12, 13}; int numberleds[10] = { 4, 5, 6, 6, 7, 7, 8, 9, 10}; int ledorder[10]; boolean gameover=false; boolean nobuttonpressed = true; boolean buttonpressed = true; int turn = 0; void setup() { Serial.begin(9600); pinMode(ledpin[0], OUTPUT); pinMode(ledpin[1], OUTPUT); pinMode(ledpin[2], OUTPUT); pinMode(ledpin[3], OUTPUT); pinMode(ledpin[4], OUTPUT); pinMode(ledpin[5], OUTPUT); pinMode(9, OUTPUT); pinMode(button[0], INPUT_PULLUP); pinMode(button[1], INPUT_PULLUP); pinMode(button[2], INPUT_PULLUP); pinMode(button[3], INPUT_PULLUP); pinMode(button[4], INPUT_PULLUP); pinMode(button[5], INPUT_PULLUP); randomSeed(analogRead(A1)); } void loop() { while(!gameover) { tone(9,200,300); delay(200); tone(9,300,300); delay(200); tone(9,400,300); delay(200); tone(9,500,600); delay(1000); noTone(9); for(int z = 0; z < numberleds[turn]; z++) { ledorder[z] = random(6); digitalWrite(ledpin[ledorder[z]], HIGH); tone(9,ledorder[z]*140+140, 300); delay(500); digitalWrite(ledpin[ledorder[z]], LOW); Serial.print(ledorder[z]+1); delay(500); } Serial.println("Enter memorycode"); for(int lednumber = 0; lednumber < numberleds[turn]; lednumber++)//check numled(turn)-1 numer of leds { while(nobuttonpressed && !gameover) { for(int i = 0; i < 6; i++)//check all buttons once { if(digitalRead(button[i])==LOW) { tone(9,i*140+140, 300); delay(300); Serial.print(i+1); nobuttonpressed = false; int buttonpressed = i; if(buttonpressed != ledorder[lednumber]){ gameover = true; Serial.print(buttonpressed); Serial.print(ledorder[lednumber]); Serial.println("gameover"); tone(9,170,700); } } while(digitalRead(button[i])==LOW){//do nothing, wait for button to be released } }// for i buttonnr }//while nobuttonpressed and not gamevoer if (!gameover){ nobuttonpressed = true; Serial.println("Correct!"); } else{ //gameover } }//next led, checked all leds in turn turn++; }// while !gameover, next turn }//loop