Tabla de contenido:

"Ninja Dollar" el juego para Arduino: 3 pasos
"Ninja Dollar" el juego para Arduino: 3 pasos

Video: "Ninja Dollar" el juego para Arduino: 3 pasos

Video:
Video: CON ESTE TRUCO SIEMPRE GANARÁS 😎 2024, Noviembre
Anonim
Imagen
Imagen

Otro videojuego para arduino. Es un gran juego es más avanzado que el último que publico. ¿Por qué que es más complejo que otros? Es más complejo porque este puede saltar y disparar y tiene una luz de sonido y un nuevo método de puntos de control.

Suministros

  1. Arduino.
  2. Tablero de circuitos
  3. cables de puente
  4. LED rojo
  5. 2 pulsadores
  6. 2 resistencias de 10k ohmios
  7. 2 resistencias 220R.
  8. LED azul superbrillante.
  9. zumbador piezoeléctrico
  10. Pantalla LCD 16 * 2

Paso 1: Cableado de todo junto

Conectando todo junto
Conectando todo junto

Ahora necesitas cablear todo

Paso 2: Cómo jugar:

  1. Enciende el arduino.
  2. La pantalla LCD debería imprimir: "el juego comienza en" y una cuenta regresiva.
  3. Pulsa uno de los botones para saltar y otro para disparar.
  4. cada bloque que saltas gana un punto y cada * que atrapas te da 5 puntos.
  5. Cuando tienes 50 puntos o más ganas

Paso 3: el código

// este jogo e muito interessante e ao mesmo tempo irritante e frustante mas muito divertido.

#incluir

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;

const int buttonPin1 = 1; const int buttonPin2 = 6; const int zumbador = 7; ptos largos sin firmar = 0; // establecer buttonstates bool buttonState1 = 0; bool buttonState2 = 0; // número aleatorio para la posición de los obstáculos int randomNums [6]; // número aleatorio para el número de obstáculos int randomNum = 0; // número aleatorio para la posición de los pts int randomNums1 [3]; // número aleatorio para el número de pts int randomNum1 = 0; // inicio del tiempo de retardo, que disminuye gradualmente unsigned int myDelay = 500; // hice este booleano para comprobar si se presiona button2 porque si se presiona una vez en el primer bucle for quiero que los obstáculos no se escriban hasta el final bool temp = 0; // esta variable almacena las posiciones del guerrero mientras dispara. puede haber 16 posiciones porque el guerrero tiene 16 posiciones. int tempI [16]; // utilizo este booleano para comprobar si el punto está capturado bool temp1 = 0;

// usa esta variable para almacenar la posición del punto capturado. debe ser una matriz para almacenar la posición de todos los puntos en una iteración del primer ciclo for. si almacenaba solo una posición, el punto "antiguo" volvería a aparecer en la nueva iteración

int tempI1 [3]; // use esta variable para tener un número de tomas del guerrero, que también es la longitud de una matriz tempI int button2IsPressed = 0; LiquidCrystal lcd (rs, en, d4, d5, d6, d7);

configuración vacía () {

// configura el número de columnas y filas de la pantalla LCD: lcd.begin (16, 2); // establecer el modo de pin de botones pinMode (buttonPin1, INPUT); pinMode (buttonPin2, ENTRADA); pinMode (zumbador, SALIDA); lcd.setCursor (4, 0); lcd.print ("EL JUEGO"); lcd.setCursor (2, 1); lcd.print ("EMPIEZA EN"); lcd.print ("5"); retraso (1000); lcd.setCursor (12, 1); lcd.print ("4"); retraso (1000); lcd.setCursor (12, 1); lcd.print ("3"); retraso (1000); lcd.setCursor (12, 1); lcd.print ("2"); retraso (1000); lcd.setCursor (12, 1); lcd.print ("1"); retraso (1000); lcd.clear ();

}

bucle vacío () {

aquí:

randomNum = aleatorio (5);

para (int i = 0; i9 && pts19 && pts29 && pts = 50) {pts = 0; myDelay = 500; lcd.clear (); lcd.setCursor (5, 0); lcd.print ("VICTORIA"); tono (zumbador, 262); retraso (200); tono (zumbador, 330); retraso (200); tono (zumbador, 392); retraso (100); tono (zumbador, 330); retraso (100); tono (zumbador, 392); retraso (100); tono (zumbador, 523); retraso (200); noTone (zumbador); retraso (3000); lcd.clear (); ir aquí; } else lcd.setCursor (15, 0); lcd.print (ptos); buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); // poniendo obstáculos si el guerrero no disparó o disparó pero también saltó if (! temp) {for (int j = 0; jrandomNums [j]) {lcd.setCursor (randomNums [j], 1); lcd.print ("#"); }

}

}

// establecer ptos

if (! temp1) {for (int j = 0; j

}

Recomendado: