Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Arduino Mini Boss Battle Game – Retro-geïnspireerd Project

Onderdelen en benodigdheden

Arduino UNO × 1
Arduino Compatibele 2x16 LCD Controller Module × 1

Apps en online diensten

Over dit project

Dit is een spel dat een boss-battle simuleert. Je gebruikt de knoppen om je aanvallen te bepalen en tussen schermen te schakelen. Je tegenstander (een demon) valt aan met een willekeurig algoritme.

Ik besloot dit te maken omdat het een leuk idee is en een terugblik naar oude en retro videogames zoals de originele Pokémon- en Super Mario-spellen.

De keuzes voor aanvallen zijn:

  • De Zwaard van Isin (2 Schade)
  • De Staf van Kanas (1 Schade, +1 Aanval)
  • De Spreuk van Tories (0 Schade, +2 Aanval)
  • De Drank van Meseus (0 Schade, +2 Gezondheid)

Veel succes en veel plezier!

Code

Code (Arduino)
#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;  // Corrected: was totaldamage, should be 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);
}

Schema's

Plaats de LCD in de pinnen op de Arduino

Arduino Mini Boss Battle Game – Retro-geïnspireerd Project

Productieproces

  1. Mini-graafmachine bedienen: een complete gids voor operators
  2. Veiligheid bij mini-graafmachines: expertrichtlijnen voor veilige bediening
  3. Expertgids: Mini-graafmachines veilig vervoeren naar bouwplaatsen
  4. EMAR Mini: Een Compacte, Open-Source Noodhulp Robot
  5. Projectielassen: De techniek van uitstulpingen onder de loep
  6. Mini VMC Machine uitgelegd: Compact CNC-frezen voor kleinschalige projecten
  7. Mini boormachine: compacte krachttool voor precisie boren & bevestigen
  8. Mini CNC draaibanken begrijpen: functie, kenmerken & voordelen
  9. Mini onderwaterpompen begrijpen: Hoe ze werken & Waar ze gebruikt worden
  10. Mini metaalsnijbandzagen begrijpen: kenmerken en toepassingen
  11. Essentiële gids voor minikranen: Typen, toepassingen en selectietips