#define BTN_START 12
#define BTN_1 14
#define BTN_2 27
//
#define LED_START 0
#define LED_1 2
#define LED_2 4
int state_game = 0;
unsigned long time_game = 0;
void setup() {
Serial.begin(115200);
Serial.println("Hello, ESP32!");
pinMode(LED_START, OUTPUT);
pinMode(LED_1, OUTPUT);
pinMode(LED_2, OUTPUT);
pinMode(BTN_START, INPUT);
pinMode(BTN_1, INPUT);
pinMode(BTN_2, INPUT);
}
void start_game() {
int winner = 0;
bool game_end = false;
long startMills = millis();
while(!game_end){
int touch_1 = digitalRead(BTN_1);
int touch_2 = digitalRead(BTN_2);
if(touch_1 == HIGH) {
Serial.println("Jogador 1 tocou primeiro.");
winner = 1;
game_end = true;
break;
} else if (touch_2 == HIGH) {
Serial.println("Jogador 2 tocou primeiro.");
winner = 2;
game_end = true;
break;
}
}
long endMills = millis();
}
void loop() {
if(state_game == 0) {
int touch_start = digitalRead(BTN_START);
if(touch_start == HIGH) {
Serial.println("INICIAR PARTIDA");
int led_on = 0;
while(led_on != 3) {
digitalWrite(LED_START, HIGH);
delay(500); // Adjust delay to your preference
digitalWrite(LED_START, LOW);
delay(500); // Adjust delay to your preference
led_on++;
}
Serial.println("PARTIDA INICIADA");
state_game = 1;
}
}
if(state_game == 1) {
start_game();
state_game = 2; // Update state after game ends
}
}