Arduino Simón dice (3 / 7 paso)

Paso 3: Más código

Comenzamos con la función "reset juego" donde llenamos nuestro arsenal de GAME_SEQUENCE

 <p>void resetGame(){<br> // reset steps READ_STEP = 0; GAME_STEP = 0; // create random sequence for(int i=0; i<GAME_MAX_SEQUENCE; i++){<br> GAME_SEQUENCE[i] = random(4) + 1;<br> }</p><p> // Go to next game state; show led sequence GAME_STATUS = 1; }</p> 

Nuestro siguiente paso juego sería el paso de reproducción donde jugamos la secuencia

 void playSequence(){<br> // play a step of our sequence for(int i=0; i<=GAME_STEP; i++){ Serial.print("Set LED"); Serial.println(GAME_SEQUENCE[i]); delay(GAME_SPEED*2); setLED(GAME_SEQUENCE[i]); playTone(GAME_SEQUENCE[i]); delay(GAME_SPEED); clearLEDs(); } // Go to next step: reading buttons GAME_STATUS = 2; } 

Después de jugar nuestra secuencia de esperar para la entrada de pulsador

 void readSequence(){<br> // read our buttons int button_value = readButtons(); if(button_value > 0){ // a button has been pressed if(button_value == GAME_SEQUENCE[READ_STEP]){ // correct value! setLED(button_value); playTone(button_value); digitalWrite(LED_CORRECT, HIGH); delay(GAME_SPEED); clearLEDs(); digitalWrite(LED_CORRECT, LOW); // Lets speed it up! GAME_SPEED = GAME_SPEED-15; Serial.println("Correct!"); if(READ_STEP == GAME_STEP){ // reset read step READ_STEP = 0; // Go to next game step GAME_STEP++; // Go to playback sequence mode of our game GAME_STATUS = 1; Serial.println("Go To Next Step"); // Light all LEDs to indicate next sequence setLEDs(true,true,true,true); delay(GAME_SPEED); setLEDs(false,false,false,false); }else{ READ_STEP++; } delay(10); }else{ // wrong value! // Go to game over mode GAME_STATUS = 3; Serial.println("Game Over!"); } } delay(10); } 

Finalmente cuando cometes un error ejecutamos el modo "juego sobre":

 void gameOver(){<br> // Red RGB digitalWrite(LED_WRONG, HIGH); // Play Pwa Pwa Pwa tone(BUZZER, 98, TONE_DURATION); delay(TONE_DURATION); tone(BUZZER, 93, TONE_DURATION); delay(TONE_DURATION); tone(BUZZER, 87, TONE_DURATION); delay(TONE_DURATION); delay(GAME_SPEED); } 

También contamos con algunas funciones auxiliares que hacen nuestra vida más fácil, pueden utilizarse en cualquier lugar en nuestro código

 void setLED(int id){<br> switch(id){ case 0: setLEDs(false,false,false,false); break; case 1: setLEDs(true,false,false,false); break; case 2: setLEDs(false,true,false,false); break; case 3: setLEDs(false,false,true,false); break; case 4: setLEDs(false,false,false,true); break; } } 
 void playTone(int id){ switch(id){ case 0: noTone(BUZZER); break; case 1: tone(BUZZER, RED_TONE, TONE_DURATION); break; case 2: tone(BUZZER, GREEN_TONE, TONE_DURATION); break; case 3: tone(BUZZER, BLUE_TONE, TONE_DURATION); break; case 4: tone(BUZZER, YELLOW_TONE, TONE_DURATION); break; } } 
 void setLEDs(boolean red, boolean green, boolean blue, int yellow ){ if (red) digitalWrite(LED_RED, HIGH); else digitalWrite(LED_RED, LOW); if (green) digitalWrite(LED_GREEN, HIGH); else digitalWrite(LED_GREEN, LOW); if (blue) digitalWrite(LED_BLUE, HIGH); else digitalWrite(LED_BLUE, LOW); if (yellow) digitalWrite(LED_YELLOW, HIGH); else digitalWrite(LED_YELLOW, LOW); } 
 void clearLEDs(){ setLEDs(false,false,false,false); } 
 int readButtons(void){ if (digitalRead(BUTTON_RED) == 0) return 1; else if (digitalRead(BUTTON_GREEN) == 0) return 2; else if (digitalRead(BUTTON_BLUE) == 0) return 3; else if (digitalRead(BUTTON_YELLOW) == 0) return 4; return 0; } 

Artículos Relacionados

Android Bluetooth lanzallamas x4 calabaza Simón dice

Android Bluetooth lanzallamas x4 calabaza Simón dice

¡ ADVERTENCIA! Este proyecto contiene combustibles extremadamente inflamables.A pesar de que he tomado medidas de precaución extra, este proyectose recomienda no intentar en casa. Proceda bajo su propio riesgo.¿Quieres darle vida a su Halloween este
Simón dice con LEDs

Simón dice con LEDs

¡ Hola!En un momento u otro, la gran mayoría de nosotros ha desempeñado el juego "Simon Says". En este juego, una persona, Simon (o Susan, Chad, o quien pasa a ser el líder), va a decir "Simón dice" y Dile a todos los otros jugadores a
Arduino - Simple Simon dice juego

Arduino - Simple Simon dice juego

en este instructable, le mostraré cómo hacer un juego simple "Simon dice" con un Arduino. no es una simple pero podemos obtener un beneficio psicológico. Tengo mala memoria para recordar algo rápido o una cosas nuevas. Así que este proyecto real
Simón dice con LinkIT uno

Simón dice con LinkIT uno

Vamos a ir a través de un proyecto de principiante clásico que combina diversión, circuitos y código: Simon Says. Construcción de su propio juego de Simon Says puede ser una excelente forma de sumergirse rápidamente en el impresionante mundo de ocupa
Avanzada Simón dice

Avanzada Simón dice

Hola a todos!Este instructables muestra "Advanced Simon Says".Es la razón por qué puse 'Avance' a 'Simon Says'.Todos ustedes pueden saber lo que Simon Says y fáciles de encontrar con proyecto arduino.(En realidad, lo hice no... primero llamaron
Simón dice con sensor táctil capacitiva

Simón dice con sensor táctil capacitiva

Este es un ejercicio básico para los noobs en arduino.Me gusta la programación y creo que mi código podría ser interesante para alguien. En mi informe si usted quiere aprender a programar shouldn´t copia el código en todos en el primer tiempo, deberí
Hacer tu propio juego de 2 jugadores Simón dice

Hacer tu propio juego de 2 jugadores Simón dice

Este Instructable explica cómo hacer un Simon Says juego utilizando una placa FPGA de Altera DE2-115 ciclón IV. Este proyecto fue hecho por ECE2220 (lógica Digital) en la Universidad de Manitoba.El video de arriba muestra la salida VGA de trabajo y c
Simón dice con Play-Doh - Makey Makey

Simón dice con Play-Doh - Makey Makey

La biblioteca pública de Dover fue anfitrión de noche de construir un Instructables con kits de Makey Makey. Nuestros clientes fueron invitados a experimentar con los kits para convertir objetos cotidianos en controladores, teclados o instrumentos mu
Memory Game Arduino

Memory Game Arduino

Esta es una versión muy básica del juego de "Simón dice", o juego de memoria - donde simplemente ver el parpadeo de LEDs y haga clic en los botones en el orden correcto para completar el nivel y la cabeza a la siguiente.Paso 1: El códigoTodo el
Arduino animatronics-hacer tu vestuario impresionante más impresionante!

Arduino animatronics-hacer tu vestuario impresionante más impresionante!

Aquí es cómo agregar luces, sonido y acción a tu proyecto favorito de Halloween utilizando el microcontrolador de Arduino de código abierto. Arduino es fácil aprender a utilizar y se abre un nuevo mundo para traje constructores y creadores de la cria
ARD-e: el robot con un Arduino como un cerebro

ARD-e: el robot con un Arduino como un cerebro

cómo crear un robot de código abierto Arduino controlado por menos de $100.Esperemos que después de leer esto instructable usted será capaz de dar su primer paso en robótica. ARD-e cuesta unos $90 a $130 dependiendo de cuánto electrónica repuesto tie
Arduino de Sensor de humedad

Arduino de Sensor de humedad

Este instructable pasará por el proceso de construcción de un sensor de humedad de trabajoPaso 1: equipo de El equipo necesario para realizar esta tarea es bastante recta hacia adelante todo lo que se necesita es:Tablero de Arduino Unoprotoboardcable
Arduino / proceso - seis ejes giroscopio y acelerómetro

Arduino / proceso - seis ejes giroscopio y acelerómetro

¡Hola mundo! Hoy quería probar el módulo de acelerómetro GY-521 a.k.a MPU 6050. ¡ Mira el video y seguir el siguiente paso para la lista de esquema, código y partes.¿Qué necesita?IDE de Arduino (supongo que ya esta.)Procesamiento de IDE (Necesario pa
DIY los antebrazo prótesis de mano, y (control de voz)

DIY los antebrazo prótesis de mano, y (control de voz)

* actualización * sólo quería añadir un poco de cómo publicar este Instructable ha positivamente me impactó. Además de la maravillosa recepción y la retroalimentación que recibí en los concursos y el éxito que ha tenido en los concursos me ayudó defi