산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노 미니 보스 배틀 게임: 레트로풍 LCD 게임 프로젝트

필요한 부품 및 소모품

아두이노 우노 (Arduino UNO) 1개
아두이노 호환 16x2 LCD 컨트롤러 모듈 1개

앱 및 온라인 서비스

프로젝트 소개

보스 배틀을 시뮬레이션하는 레트로풍 게임입니다. 버튼으로 공격을 선택하고 화면을 전환하며, 적(데몬)은 랜덤 알고리즘으로 공격합니다. 초기 포켓몬이나 슈퍼 마리오 같은 고전 게임을 오마주했습니다.

공격 선택지

행운을 빕니다! 즐거운 게임 되세요!

코드

아두이노 코드 (주석 포함 버전)
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

int turn = 1, screen = 0;
int health = 10, ehealth = 10;
int attackdamage = 0, stats = 0, totaldamage = 0;
int eattackdamage = 0, estats = 0, etotaldamage = 0;
int enemyattack, attack = 0;

void setup() {
  lcd.begin(16, 2);
  Serial.begin(9600);
}

void loop() {
  totaldamage = attackdamage + stats;
  etotaldamage = eattackdamage + estats;
  estats = stats = attackdamage = eattackdamage = 0;
  
  int button = analogRead(A0); // 아날로그 버튼 입력 (저항 분배기 방식 추정)
  
  // 승리/패배 판정
  if (health <= 0) { lcd.clear(); lcd.print("You Lose"); }
  if (ehealth <= 0) { lcd.clear(); lcd.print("You Win!"); }
  
  // 화면 전환 버튼 (500~750 범위)
  if (button >= 500 && button <= 750) {
    screen++; delay(1000); enemyattack = random(1, 5);
  }
  if (screen > 4) { screen = 0; turn++; enemyattack = random(1, 5); }
  
  // 화면별 표시
  switch (screen) {
    case 0: // 턴 표시
      lcd.clear(); lcd.setCursor(0,0); lcd.print("Turn");
      lcd.setCursor(0,1); lcd.print(turn); break;
    case 1: // 플레이어 공격 선택
      lcd.setCursor(0,0); lcd.print("You Used The");
      // 버튼 아날로그 값으로 4가지 공격 구분
      if (button >= 0 && button <= 50) { /* 이신의 검 */ }
      else if (button >= 50 && button <= 150) { /* 카나스의 지팡이 */ }
      else if (button >= 150 && button <= 300) { /* 토리스의 주문 */ }
      else if (button >= 300 && button <= 500) { /* 메세우스의 포션 */ }
      break;
    case 2: // 적 공격 및 데미지 계산
      lcd.clear(); lcd.setCursor(0,0); lcd.print("The Demon Used");
      // enemyattack(1~4)에 따라 4가지 공격 패턴
      ehealth -= totaldamage; // 적 체력 감소
      health -= etotaldamage; // 내 체력 감소
      break;
    case 3: // 내 체력 표시
      lcd.clear(); lcd.setCursor(0,0); lcd.print("Player Health:");
      lcd.setCursor(0,1); lcd.print(health); break;
    case 4: // 적 체력 표시
      lcd.clear(); lcd.setCursor(0,0); lcd.print("Enemy Health:");
      lcd.setCursor(0,1); lcd.print(ehealth); break;
  }
  Serial.println(health, ehealth);
}

회로도

LCD를 아두이노 핀에 직접 꽂는 간단한 연결 (핀 8,9,4,5,6,7 사용). 버튼은 A0 핀에 저항 분배기 구성으로 연결 추정.

제조공정

  1. EMAR 미니: 코로나19 대응 오픈소스 응급 지원 로봇 소형화 버전
  2. 미니 크레인 필수 가이드: 유형, 용도, 선택 팁
  3. 미니 굴착기 작동 마스터하기: 종합 가이드
  4. 미니 굴착기 안전: 안전한 작동을 위한 전문가 지침
  5. 전문가 가이드: 작업 현장 미니 굴착기 안전 운송법
  6. 돌기 용접 마스터하기: 엠보싱 기법 완벽 가이드
  7. 미니 VMC 머신 설명: 소규모 프로젝트를 위한 컴팩트 CNC 밀링
  8. 미니 드릴 머신: 정밀 드릴링 및 체결을 위한 콤팩트 전동 공구
  9. 미니 CNC 선반 이해: 기능, 특징 및 이점
  10. 미니 잠수펌프 이해: 작동 원리 및 용도