// Definindo os pinos dos LEDs
#define LED1 2
#define LED2 4
#define LED3 13
// Definindo os pinos dos botões
#define BUTTON1 27
#define BUTTON2 32
#define BUTTON3 33
bool gameStarted = false;
long startTime;
// Contadores de placar para os jogadores
int scorePlayer1 = 0;
int scorePlayer2 = 0;
void setup() {
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(BUTTON1, INPUT_PULLUP);
pinMode(BUTTON2, INPUT_PULLUP);
pinMode(BUTTON3, INPUT_PULLUP);
Serial.begin(115200);
}
void blinkLed(int ledPin) {
for (int i = 0; i < 3; i++) {
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
digitalWrite(ledPin, HIGH);
}
}
void lightLed(int ledPin, long startTime) {
digitalWrite(ledPin, HIGH);
Serial.println(millis() - startTime);
}
void printScore() {
Serial.print("Placar - Jogador 1: ");
Serial.print(scorePlayer1);
Serial.print(", Jogador 2: ");
Serial.println(scorePlayer2);
}
void loop() {
if (digitalRead(BUTTON1) == LOW)
{
blinkLed(LED1);
gameStarted = true;
startTime = millis();
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
}
if (gameStarted)
{
if (digitalRead(BUTTON2) == LOW)
{
lightLed(LED2, startTime);
gameStarted = false;
scorePlayer1++; // Incrementa o placar do jogador 1
printScore(); // Imprime o placar atual
}
if (digitalRead(BUTTON3) == LOW)
{
lightLed(LED3, startTime);
gameStarted = false;
scorePlayer2++; // Incrementa o placar do jogador 2
printScore(); // Imprime o placar atual
}
}
}