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
- Arduino IDE
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:
- La Espada de Isin (2 de daño)
- El Bastón de Kanas (1 de daño, +1 de ataque)
- El Hechizo de Tories (0 de daño, +2 de ataque)
- La Poción de Meseus (0 de daño, +2 de vida)
¡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
Proceso de manufactura
- Domina la Operación de Mini Excavadoras: Guía Completa
- Seguridad en Mini Excavadoras: Directrices Expertas para una Operación Segura
- Guía Experta: Transporte Seguro de Mini Excavadoras para Obras
- EMAR Mini: Robot Compacto de Asistencia en Emergencias Open‑Source
- Soldadura por proyección: Dominando las técnicas de relieve
- Máquina VMC Mini Explicada: Fresado CNC Compacto para Proyectos de Pequeña Escala
- Mini Taladro: Herramienta Eléctrica Compacta para Taladrado y Atornillado Preciso
- Entendiendo los Mini Tornos CNC: Función, Características y Beneficios
- Entendiendo las Mini Bombas Sumergibles: Funcionamiento y Aplicaciones
- Entendiendo las Mini Sierras de Cinta para Corte Metálico: Características y Aplicaciones
- Guía esencial de minigrúas: Tipos, usos y consejos de selección