Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Juego de Batalla Contra Jefe con Arduino Mini – Proyecto Retro

Componentes y suministros

Componente Cantidad
Arduino UNO 1
Módulo controlador LCD 2x16 compatible con Arduino 1

Aplicaciones y servicios en línea

Sobre el proyecto

Este es un juego que simula una batalla contra un jefe. Usas los botones para determinar tus ataques y cambiar entre pantallas. Tu oponente (un demonio) ataca usando un algoritmo aleatorio.

Decidí hacer esto porque es una idea divertida y un homenaje a los viejos videojuegos retro como el Pokémon original y los juegos de Super Mario.

Las opciones de ataque son:

¡Buena suerte y diviértete!

Código

#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

int turn = 1;
int screen = 0;
int health = 10;
int ehealth = 10;
int attackdamage = 0;
int stats = 0;
int totaldamage = attackdamage + stats;
int eattackdamage = 0;
int estats = 0;
int etotaldamage = eattackdamage + estats;
int enemyattack = random(1, 5);
int attack = 0;

void setup() {
  totaldamage = attackdamage + stats;
  etotaldamage = eattackdamage + estats;
  lcd.begin(16, 2);
  Serial.begin(9600);
}

void loop() {
  totaldamage = attackdamage + stats;
  etotaldamage = eattackdamage + estats;
  estats = 0;
  stats = 0;
  attackdamage = 0;
  eattackdamage = 0;
  
  int button = analogRead(A0);
  
  if (health <= 0) {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("You Lose");
  }
  
  if (ehealth <= 0) {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("You Win!");
  }
  
  if (button >= 500 && button <= 750) {
    screen = screen + 1;
    delay(1000);
    enemyattack = random(1, 5);
    Serial.println('5');
  }
  
  if (screen > 4) {
    screen = 0;
    turn = turn + 1;
    enemyattack = random(1, 5);
  }
  
  if (screen == 0) {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Turn");
    lcd.setCursor(0, 1);
    lcd.print(turn);
  } 
  else if (screen == 1) {
    lcd.setCursor(0, 0);
    lcd.print("You Used The");
    lcd.setCursor(0, 1);
    
    if (button >= 0 && button <= 50) {
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("You Used The");
      lcd.setCursor(0, 1);
      lcd.print("Blade Of Isin");
      attackdamage = 2;
    } 
    else if (button >= 50 && button <= 150) {
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("You Used The");
      lcd.setCursor(0, 1);
      lcd.print("Staff Of Kanas");
      attackdamage = 1;
      stats = stats + 1;
      delay(1000);
    } 
    else if (button >= 150 && button <= 300) {
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("You Used The");
      lcd.setCursor(0, 1);
      lcd.print("Spell Of Tories");
      attackdamage = 0;
      stats = stats + 2;
      delay(1000);
    } 
    else if (button >= 300 && button <= 500) {
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("You Used The");
      lcd.setCursor(0, 1);
      lcd.print("Potion Of Meseus");
      attackdamage = 0;
      health = health + 2;
      delay(1000);
    }
  } 
  else if (screen == 2) {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("The Demon Used");
    lcd.setCursor(0, 1);
    
    if (enemyattack == 1) {
      lcd.print("The Bone Spear");
      eattackdamage = 2;
      delay(1000);
    } 
    else if (enemyattack == 2) {
      lcd.print("The Cursed Blade");
      eattackdamage = 1;
      estats = estats + 1;
      delay(1000);
    } 
    else if (enemyattack == 3) {
      lcd.print("The Cursed Spell");
      eattackdamage = 3;
      estats = estats - 2;
      delay(1000);
    } 
    else if (enemyattack == 4) {
      lcd.print("The Skull Ritual");
      eattackdamage = 0;
      estats = estats + 2;
      delay(1000);
    }
    
    ehealth = ehealth - totaldamage;
    health = health - etotaldamage; // Corregido: era totaldamage, debería ser etotaldamage
  } 
  else if (screen == 3) {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Player Health:");
    lcd.setCursor(0, 1);
    lcd.print(health);
  } 
  else if (screen == 4) {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Enemy Health:");
    lcd.setCursor(0, 1);
    lcd.print(ehealth);
  }
  
  Serial.println(health);
  Serial.println(ehealth);
}

Esquemáticos

Coloca la LCD en los pines del Arduino

Juego de Batalla Contra Jefe con Arduino Mini – Proyecto Retro

Proceso de manufactura

  1. Domina la Operación de Mini Excavadoras: Guía Completa
  2. Seguridad en Mini Excavadoras: Directrices Expertas para una Operación Segura
  3. Guía Experta: Transporte Seguro de Mini Excavadoras para Obras
  4. EMAR Mini: Robot Compacto de Asistencia en Emergencias Open‑Source
  5. Soldadura por proyección: Dominando las técnicas de relieve
  6. Máquina VMC Mini Explicada: Fresado CNC Compacto para Proyectos de Pequeña Escala
  7. Mini Taladro: Herramienta Eléctrica Compacta para Taladrado y Atornillado Preciso
  8. Entendiendo los Mini Tornos CNC: Función, Características y Beneficios
  9. Entendiendo las Mini Bombas Sumergibles: Funcionamiento y Aplicaciones
  10. Entendiendo las Mini Sierras de Cinta para Corte Metálico: Características y Aplicaciones
  11. Guía esencial de minigrúas: Tipos, usos y consejos de selección