Arduino Mini Boss Battle Game — ретро-игра в стиле босса
Компоненты и материалы
| Arduino UNO | 1 |
| LCD-дисплей 16x2 с контроллером (Arduino Compatible) | 1 |
Приложения и онлайн-сервисы
- Arduino IDE
О проекте
Игра-симуляция битвы с боссом. Кнопки (через аналоговый вход A0) выбирают атаки и переключают экраны. Противник (демон) атакует по случайному алгоритму.
Идея вдохновлена ретро-играми: оригинальные Pokemon и Super Mario.
Атаки игрока:
- Клинок Исина (Blade Of Isin) — 2 урона
- Посох Канаса (Staff Of Kanas) — 1 урон, +1 к атаке
- Заклинание Торис (Spell Of Tories) — 0 урона, +2 к атаке
- Зелье Месеуса (Potion Of Meseus) — 0 урона, +2 здоровья
Удачи и веселой игры!
Код
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
int turn = 1, screen = 0, health = 10, ehealth = 10;
int attackdamage = 0, stats = 0, totaldamage = 0;
int eattackdamage = 0, estats = 0, etotaldamage = 0;
int enemyattack, 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++; delay(1000); enemyattack = random(1,5); Serial.println('5'); }
if (screen > 4) { screen = 0; turn++; 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++; 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 += 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 += 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++; delay(1000); }
else if (enemyattack == 3) { lcd.print("The Cursed Spell"); eattackdamage = 3; estats -= 2; delay(1000); }
else if (enemyattack == 4) { lcd.print("The Skull Ritual"); eattackdamage = 0; estats += 2; delay(1000); }
ehealth -= totaldamage;
health -= etotaldamage; // ИСПРАВЛЕНО: было health -= totaldamage (ошибка оригинала)
}
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);
}
Примечание: в оригинальном коде была ошибка расчёта урона игроку (использовался totaldamage вместо etotaldamage). Исправлено в данной версии.
Схемы
LCD-дисплей устанавливается непосредственно на пины Arduino.

Производственный процесс
- EMAR Mini: Компактный открытый робот экстренной помощи для борьбы с COVID-19
- Основное руководство по мини-кранам: типы, применение и советы по выбору
- Освоение управления мини-экскаватором: подробное руководство
- Безопасность мини-экскаватора: экспертные рекомендации для надежной работы
- Экспертное руководство: безопасная перевозка мини-экскаваторов на объекты
- Контактная сварка: освоение техник выемок
- Мини VMC станок: компактное ЧПУ фрезерование для малых проектов
- Мини-дриль: компактный электроинструмент для точного сверления и крепежа
- Понимание мини токарных станков с ЧПУ: функции, особенности и преимущества
- Понимание мини-погружных насосов: Принцип работы и сферы применения