/* Inclui o preâmbulo a partir da aba preambulo.h */
#include "preambulo.h"

// Função setup é executada uma vez quando o Arduino é ligado
void setup() {

  /* Chama a função que faz as configurações necessárias. */
  configurar();

  // Carrega o recorde da EEPROM
  EEPROM.get(enderecoRecorde, recorde);
  Serial.print("Recorde Atual: ");
  if (recorde < 0 || recorde > 100) {
    Serial.println("0");
  } else {
    Serial.println(recorde);
  }

  // Espera pelo jogador para iniciar a partida
  esperarNovoJogo();

}

// Função loop é executada continuamente
void loop() {

  // Mostra a sequência ao jogador
  mostrarSequencia();

  // Verifica a entrada do jogador
  if (verificarEntradaJogador()) { //// Se acertou, faça...

    Serial.println("Correto! Próxima rodada.");
    delay(1000);
    gerarSequencia();

  } else {

    Serial.println("Game Over!");
    tocarMusicaDerrota();

    // Atualiza o recorde se o jogador tiver atingido um novo recorde
    if (tamanhoSequencia - 1 > recorde ) {

      recorde = tamanhoSequencia - 1; // Atualiza o recorde.

      EEPROM.put(enderecoRecorde, recorde); // Grava o recorde na EEPROM

      Serial.print("Novo Recorde: ");
      Serial.println(recorde);

    } else {
      Serial.print("Recorde Atual: ");
      Serial.println(recorde);
    }

    esperarNovoJogo();

  }
}
$abcdeabcde151015202530fghijfghij