Arduino IDE Coding
int led1 = 2;
int led2 = 3;
int led3 = 4;
int led4 = 5;
int button1 = 6;
int button2 = 7;
int button3 = 8;
int button4 = 9;
int buzzer = 10;
int score = 0;
int lives = 3;
void setup()
{
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(button1, INPUT_PULLUP);
pinMode(button2, INPUT_PULLUP);
pinMode(button3, INPUT_PULLUP);
pinMode(button4, INPUT_PULLUP);
pinMode(buzzer, OUTPUT);
Serial.begin(9600);
randomSeed(analogRead(A0));
Serial.println("WHACK-A-MOLE GAME");
Serial.println("Lives = 3");
}
void loop()
{
if (lives <= 0)
{
gameOver();
return;
}
int target = random(1, 5);
turnOffLEDs();
lightLED(target);
unsigned long startTime = millis();
bool hit = false;
while (millis() - startTime < 2000)
{
int pressed = getButtonPressed();
if (pressed != 0)
{
if (pressed == target)
{
score++;
tone(buzzer, 1500);
delay(150);
noTone(buzzer);
Serial.print("Correct! Score = ");
Serial.println(score);
}
else
{
lives--;
tone(buzzer, 500);
delay(300);
noTone(buzzer);
Serial.print("Wrong! Lives Left = ");
Serial.println(lives);
}
hit = true;
break;
}
}
if (!hit)
{
lives--;
Serial.print("Too Slow! Lives Left = ");
Serial.println(lives);
tone(buzzer, 700);
delay(300);
noTone(buzzer);
}
turnOffLEDs();
delay(500);
}
void lightLED(int num)
{
if (num == 1) digitalWrite(led1, HIGH);
if (num == 2) digitalWrite(led2, HIGH);
if (num == 3) digitalWrite(led3, HIGH);
if (num == 4) digitalWrite(led4, HIGH);
}
void turnOffLEDs()
{
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
}
int getButtonPressed()
{
if (digitalRead(button1) == LOW) return 1;
if (digitalRead(button2) == LOW) return 2;
if (digitalRead(button3) == LOW) return 3;
if (digitalRead(button4) == LOW) return 4;
return 0;
}
void gameOver()
{
Serial.println(" ");
Serial.println("GAME OVER");
Serial.print("Final Score = ");
Serial.println(score);
for (int i = 0; i < 5; i++)
{
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
tone(buzzer, 400);
delay(300);
turnOffLEDs();
noTone(buzzer);
delay(300);
}
delay(3000);
score = 0;
lives = 3;
Serial.println(" ");
Serial.println("NEW GAME STARTED");
Serial.println("Lives = 3");
}