Generation

generate functionWed, 26 Apr 2023

que funcione hasta el nivel 20 y si se equivoca vuelva a empezar // Definición de pines int leds[] = {8, 3, 5, 4, 7}; // Pines de los LEDs int pulsadores[] = {A0, A1, A2, A3, A4}; // Pines de los pulsadores int buzzer = 12; // Pin del buzzer int velocidad = A5; // Pin de velocidad del juego // Definición de constantes const int niveles = 20; // Número de niveles del juego const int tono_buzzer = 1000; // Frecuencia del tono del buzzer en Hz // Variables globales int secuencia[niveles]; // Arreglo para almacenar la secuencia de LEDs int nivel = 1; // Nivel actual del juego void setup() { Serial.begin(9600); randomSeed(analogRead(0)); // Configurar pines de LEDs como salidas for (int i = 0; i < 5; i++) { pinMode(leds[i], OUTPUT); } // Configurar pines de pulsadores como entradas con pull-up for (int i = 0; i < 5; i++) { pinMode(pulsadores[i], INPUT_PULLUP); } // Configurar pin de velocidad del juego como entrada pinMode(velocidad, INPUT); } void loop() { if (nivel <= niveles) { Serial.print("Nivel "); Serial.println(nivel); generarSecuencia(); // Mostrar secuencia de LEDs for (int i = 0; i < nivel; i++) { encenderLED(secuencia[i]); } // Esperar a que el jugador ingrese la secuencia for (int i = 0; i < nivel; i++) { int entrada = leerEntrada(); apagarLED(entrada); if (entrada != secuencia[i]) { // El jugador se equivocó, reiniciar el juego Serial.println("¡Te equivocaste! Vuelve al nivel 1."); reproducirError(); nivel = 1; break; } if (i == nivel - 1) { // El jugador acertó la secuencia en este nivel Serial.println("¡Correcto!"); delay(1000); nivel++; } } } else { // El jugador completó todos los niveles Serial.println("¡Ganaste!"); nivel = 1; delay(1000); } } // Función para generar una nueva secuencia aleatoria void generarSecuencia() { for (int i = 0; i < nivel; i++) { secuencia[i] = random(0, 5); // Generar un número aleatorio entre 0 y 4 (índices de los LEDs) } } // Función para leer la entrada del jugador int leerEntrada() { while (true) { for (int i = 0; i < 5; i++) { if (digitalRead(pulsadores[i]) == LOW) { // Retornar el índice del pulsador que fue presionado return i; } } } } // Función para encender un LED void encenderLED(int led) { digitalWrite(leds[led], HIGH); delay(500); digitalWrite(leds[led], LOW); delay(500); } // Función para apagar un LED void apagarLED(int led) { digitalWrite(leds[led], LOW); } // Función para reproducir un sonido de error void reproducirError() { tone(buzzer, tono_buzzer); delay(500); noTone(buzzer); }

// Definición de pines int leds[] = {8, 3, 5, 4, 7}; // Pines de los LEDs int pulsadores[] = {A0, A1, A2, A3, A4}; // Pines de los pulsadores int buzzer = 12; // Pin del buzzer int velocidad = A5; // Pin de velocidad del juego // Definición de constantes const int niveles = 20; // Número de niveles del juego const int tono_buzzer = 1000; // Frecuencia del tono del buzzer en Hz // Variables globales int secuencia[niveles]; // Arreglo para almacenar la secuencia de LEDs int nivel = 1; // Nivel actual del juego void setup() { Serial.begin(9600); randomSeed(analogRead(0)); // Configurar pines de LEDs como salidas for

Questions about programming?Chat with your personal AI assistant