My Simon Says not working code…
this is YiNing’s not working Simon code….
boolean simonDone; int simonSays[99] ={}; int user[99] = {}; int nextStep = 0 ; int usernextStep = 1; int simonSpeed = 500; int ledpin[4] = {}; int btnpin[4] = {}; int count = 0; int debouncedelay = 10; boolean debouncefunction(int pin){ boolean state; boolean previousState; previousState = digitalRead(pin); for(int counter =0; counter > debouncedelay; counter++){ delay(1); state = digitalRead(pin); //readpin if(state != previousState) {counter = 0; previousState = state; } } return state; } void setup() { for(int i = 4; i < 8; i++){ pinMode(btnpin[i], INPUT); } for(int i =8; i < 12; i++){ pinMode(ledpin[i], OUTPUT); } Serial.begin(9600); randomSeed(analogRead(0)); } void loop () { if (simonDone == false) { simonSays[nextStep] = int(random(1,5)) ; Serial.print("nextStep: " ); Serial.println(nextStep); Serial.print("simonSpeed: " ); // Show how the new time feature works Serial.println(simonSpeed); // Show how the new time feature works Serial.print("simonSays: "); for (int i =0; i <= nextStep ; i++) { Serial.print(simonSays[i]); Serial.print(" , "); if(simonSays[i] == 1){ digitalWrite(8, HIGH); delay(300); digitalWrite(8, LOW); } if(simonSays[i] == 2){ digitalWrite(9, HIGH); delay(300); digitalWrite(9, LOW); } if(simonSays[i] == 3){ digitalWrite(10, HIGH); delay(300); digitalWrite(10, LOW); } if(simonSays[i] == 4){ digitalWrite(11, HIGH); delay(300); digitalWrite(11, LOW); } delay(simonSpeed); } simonSpeed= (simonSpeed - (nextStep*5)); simonSpeed = max(simonSpeed, 200); simonDone = true; Serial.println(" "); } if (simonDone == true) { //delay(3000); Serial.println("User's turn"); Serial.print("User says: "); for(int i = 0; i <= nextStep; i++){ boolean wait = true; if(user[i] != 1 || user[i] != 2 || user[i] != 3 || user[i] != 4){ if(wait == true) { for(int i = 0; i <count+1; i++){ delay(count); count++; } } } if (digitalRead(4) == HIGH){ wait = false; Serial.print("1"); user[i] = 1; delay(200); } if (digitalRead(5) == HIGH){ wait = false; Serial.print("2"); user[i] = 2; delay(200); } if (digitalRead(6) == HIGH){ wait = false; Serial.print("3"); user[i] = 3; delay(200); } if (digitalRead(7)== HIGH){ wait = false; Serial.print("4"); user[i] = 4; delay(200); } if (user[i] == simonSays[i]){ //usernextStep ++; Serial.print(" , "); //if(usernextStep == nextStep + 1){ Serial.println("User got it right, add a new step and give Simon a Turn"); simonDone = false; //} } } nextStep++; } }
Reply