const int ledPins[] = {2, 3, 4, 5}; // RED GREEN YELLOW BLUE
const int buttonPins[] = {6, 7, 8, 9}; // RED GREEN YELLOW BLUE
unsigned long startTime;
int userTime = 0;
int userInput = -1;
int lightedLed = 0;
void setup() {
for (int i = 0; i < 4; i++) {
pinMode(ledPins[i], OUTPUT);
pinMode(buttonPins[i], INPUT_PULLUP);
}
Serial.begin(9600);
}
void loop() {
lightRandomLed();
while (!checkUserInput());
}
int generateRandomTime1To3() {
return ((random() % 3) + 1);
}
void lightRandomLed() {
delay(generateRandomTime1To3() * 1000);
lightedLed = random() % 4;
digitalWrite(ledPins[lightedLed], HIGH);
startTime = millis();
}
boolean checkUserInput() {
for (int i = 0; i < 4; i++) {
if (digitalRead(buttonPins[i]) == LOW) {
userInput = i;
}
}
if (userInput == lightedLed) {
userTime = millis() - startTime;
digitalWrite(ledPins[lightedLed], LOW);
Serial.print("Your Score is:");
Serial.print(userTime / 1000.0);
userInput = -1;
Serial.println(" Second");
return true;
}
return false;
}