#define LED_ONE 2
#define LED_TWO 3
#define LED_THREE 4
#define LED_FOUR 5
#define BUTTON_ONE 8
#define BUTTON_TWO 9
#define BUTTON_THREE 10
#define BUTTON_FOUR 11
#define ONE_SECOND 1000
#define HALF_SECOND 500
#define SEQUENCE_SIZE 4
#define BUTTON_ONE 8
#define BUTTON_TWO 9
#define BUTTON_THREE 10
#define BUTTON_FOUR 11
#define UNDEFINED -1
int lightSequence[SEQUENCE_SIZE];
void setup() { Serial.begin(9600); beginGates(); beginGame(); }
void beginGame() { int potentiometer = analogRead (0); Serial.println(potentiometer); for(int index = 0; index < SEQUENCE_SIZE; index++) lightSequence[index] = randomColor(); } int randomColor() { return random(LED_ONE, LED_FOUR + 1); }
void beginGates() { pinMode(LED_ONE, OUTPUT); pinMode(LED_TWO, OUTPUT); pinMode(LED_THREE, OUTPUT); pinMode(LED_FOUR, OUTPUT); /* */ pinMode(BUTTON_ONE, INPUT_PULLUP); pinMode(BUTTON_TWO, INPUT_PULLUP); pinMode(BUTTON_THREE, INPUT_PULLUP); pinMode(BUTTON_FOUR, INPUT_PULLUP); }
void loop () {
for (int index = 0; index < SEQUENCE_SIZE; index++) {
blinkLed(lightSequence[index]);
}
Serial.println(checkAnswerPlayer());
}
int checkAnswerPlayer() {
if(digitalRead(BUTTON_ONE) == LOW) {
return blinkLed(LED_ONE);
}
if(digitalRead(BUTTON_TWO) == LOW) {
return blinkLed(LED_TWO);
}
if(digitalRead(BUTTON_THREE) == LOW) {
return blinkLed(LED_THREE);
}
if(digitalRead(BUTTON_FOUR) == LOW) {
return blinkLed(LED_FOUR);
}
return UNDEFINED;
}
int blinkLed(int ledGate) { digitalWrite(ledGate, HIGH); delay(ONE_SECOND); digitalWrite(ledGate, LOW); delay(HALF_SECOND); return ledGate; }