int joystickleft = A0;
int joystickright = A1; // These don't really make sense to me but they're correct according to Arduino LOL
int lval = 0;
int rval = 0;
int leftsuccess = 0, noteleft=0;
int rightsuccess = 0, noteright=0;
unsigned long timer=0, totaltime = 0;
float score, lastscore;
int gamefinish = 0;
long randNumberleft;
long randNumberright;
void setup() { // put your setup code here, to run once:
pinMode(6, OUTPUT); // RED
pinMode (9, OUTPUT); // GREEN
pinMode(10, OUTPUT); // BLUE
pinMode(4, OUTPUT); // BUZZER
Serial.begin(9600);
randomSeed(analogRead(0));
digitalWrite(6, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
Serial.println("HELLO.");
delay(1000);
Serial.println("Each of these joysticks has an random value.");
delay(2000);
Serial.println("Your goal is to find them both as quickly as possible.");
delay(2000);
Serial.println("You will be timed.");
delay(2000);
}
void loop() { // put your main code here, to run repeatedly:
gamefinish = 0;
noteleft=0;
noteright=0;
randNumberleft = random(1023);
randNumberright = random(1023);
Serial.println(randNumberleft); // DELETE LATER!!
Serial.println(randNumberright);
Serial.println("Ready to play? Game starts in 3 seconds.\n");
delay(3000);
Serial.println("GO!");
totaltime = micros();
lastscore = totaltime/1000000.0;
while (gamefinish == 0) {
lval = analogRead(joystickleft);
rval = analogRead(joystickright);
Serial.println(lval);
Serial.println(rval);
if ((lval <= randNumberleft+5 && lval >= randNumberleft-5) && noteleft==0) {
Serial.println("-LEFT SETTING REACHED-");
digitalWrite(6, HIGH);
tone(4, 330, 100);
delay(100);
tone(4, 392, 500);
leftsuccess = 1;
noteleft=1;
}
if ((rval <= randNumberright+5 && rval >= randNumberright-5) && noteright==0) {
Serial.println("-RIGHT SETTING REACHED-");
digitalWrite(9, HIGH);
tone(4, 330, 500);
delay(100);
tone(4, 392, 500);
rightsuccess = 1;
noteright=1;
}
if (lval > randNumberleft+5 || lval < randNumberleft-5) {
leftsuccess = 0;
noteleft=0;
}
if (rval > randNumberright+5 || rval < randNumberright-5) {
rightsuccess = 0;
noteright=0;
}
if (leftsuccess==1 && rightsuccess==1) {
digitalWrite(10, HIGH);
tone(4, 330, 500);
delay(100);
tone(4, 262, 500);
delay(100);
tone(4, 392, 600);
Serial.println("---CRACKED---");
timer = micros();
score = timer/1000000.0;
// Serial.println(timer);
// Serial.println(score);
score = score-lastscore;
Serial.print("Time: ");
Serial.print(score);
Serial.println(" sec");
delay(1000);
Serial.println("\nNew game will start in 5 seconds.\n");
delay(5000);
gamefinish = 1;
}
}
}