#include <Arduino.h>
// This game is from Timothy. The aim is to count the amount of blinks. When 10, you have to press the button
// If it was indeed 10 blinks, all LED's blink slowly. If it was incorrect the LED's blink quickly
// Afterwards the game restarts
int ledPin1 = 10;
int ledPin2 = 11;
int ledPin3 = 12;
int led = 0;
int buttonPin = 2;
int buttonState = 0;
int blinkCount = 0;
int randomDelay = 0;
unsigned long currentTime = 0;
unsigned long previousTime = 0;
void setup() {
Serial.begin(9600);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
randomSeed(analogRead(0));
led = random(1, 4);
}
void loop() {
currentTime = millis();
Serial.print("blinkCount");
Serial.println(blinkCount);
if (led == 1) {
digitalWrite(ledPin1, HIGH);
randomDelay = random(400, 800);
previousTime = currentTime;
blinkCount++;
led = 0;
}
if (led == 2) {
digitalWrite(ledPin2, HIGH);
randomDelay = random(400, 800);
previousTime = currentTime;
blinkCount++;
led = 0;
}
if (led == 3) {
digitalWrite(ledPin3, HIGH);
randomDelay = random(400, 800);
previousTime = currentTime;
blinkCount++;
led = 0;
}
if (currentTime - previousTime >= randomDelay) {
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
delay(100);
led = random(1, 4);
}
buttonState = digitalRead(buttonPin);
Serial.println(buttonState);
Serial.println(randomDelay);
// Correct button press
if (blinkCount == 10 && buttonState == LOW) {
for (int i = 0; i < 3; i++) {
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, HIGH);
delay(500);
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
delay(500);
}
blinkCount = 0;
buttonState = HIGH;
}
// False button press
if (buttonState == LOW && blinkCount != 10) {
for (int i = 0; i < 7; i++) {
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, HIGH);
delay(100);
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
delay(100);
}
blinkCount = 0;
}
}