제조공정
| × | 1 | ||||
| × | 1 |
|
보스전을 시뮬레이션하는 게임입니다. 버튼을 사용하여 공격을 결정하고 화면 사이를 변경합니다. 상대(악마)는 무작위 알고리즘을 사용하여 공격합니다.
나는 이것이 재미있는 아이디어이자 오리지널 Pokemon 및 Super Mario 게임과 같은 옛날 및 복고풍 비디오 게임에 대한 후퇴이기 때문에 이것을 만들기로 결정했습니다.
공격을 위한 선택은 다음과 같습니다:- 블레이드 오브 이신(2 데미지)- 카나스의 지팡이(1 데미지, +1 공격)- 토리스의 주문(0 데미지, +2 공격)- 메세우스의 물약(0 데미지, +2 건강) 행운을 빕니다 &즐거운 시간 보내세요!
섹션> <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">#includeLiquidCrystal lcd(8, 9, 4, 5, 6, 7); 정수 차례 =1; 정수 화면 =0; 정수 건강 =10; int ehealth =10; int 공격 데미지 =0; 정수 통계 =0; int totaldamage =공격 데미지 + 통계; int 공격 데미지 =0; 정수 =0; int etotaldamage =Eattackdamage + estats; int 적공격 =random(1, 5); int attack =0;void setup() { totaldamage =attackdamage + stats; etotaldamage =Eattackdamage + estats; lcd.begin(16, 2); Serial.begin(9600);}void 루프() { totaldamage =공격 데미지 + 통계; etotaldamage =Eattackdamage + estats; 통계 =0; 통계 =0; 공격 데미지 =0; 공격 데미지 =0; 정수 버튼=analogRead(A0); if (건강 <=0) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("당신은 졌습니다"); } if (ehealth <=0) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("당신이 이겼습니다!"); } if(버튼>=500&&버튼<=750) { 화면 =화면 + 1; 지연(1000); 적의 공격 =random(1, 5); Serial.println('5'); } if (화면> 4) { 화면 =0; 턴 =턴 + 1; 적의 공격 =random(1, 5); } if (화면 ==0) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("회전"); lcd.setCursor(0, 1); lcd.print(턴); } else if (화면 ==1) { lcd.setCursor(0, 0); lcd.print("당신이 사용했습니다"); lcd.setCursor(0, 1); if(버튼>=0&&버튼<=50) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("당신이 사용했습니다"); lcd.setCursor(0, 1); lcd.print("이신의 칼날"); 공격 데미지 =2; } else if(버튼>=50&&버튼<=150) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("당신이 사용했습니다"); lcd.setCursor(0, 1); lcd.print("카나스의 직원"); 공격 데미지 =1; 통계 =통계 + 1; 지연(1000); } else if(버튼>=150&&버튼<=300) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("당신이 사용했습니다"); lcd.setCursor(0, 1); lcd.print("Tories의 주문"); 공격 데미지 =0; 통계 =통계 + 2; 지연(1000); } else if(버튼>=300&&버튼<=500) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("당신이 사용했습니다"); lcd.setCursor(0, 1); lcd.print("메세우스의 물약"); 공격 데미지 =0; 건강 =건강 + 2; 지연(1000); } } else if (화면 ==2) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("사용된 악마"); lcd.setCursor(0, 1); if (enemyattack ==1) { lcd.print("뼈창"); 먹튀 데미지 =2; 지연(1000); } else if (enemyattack ==2){ lcd.print("저주받은 칼날"); 공격 데미지 =1; 통계 =통계 ++; 지연(1000); } else if (enemyattack ==3){ lcd.print("저주받은 주문"); 먹튀 데미지 =3; 재산 =재산 - 2; 지연(1000); } else if (enemyattack ==4){ lcd.print("해골 의식"); 공격 데미지 =0; 재산 =재산 + 2; 지연(1000); } ehealth =ehealth - totaldamage; 건강 =건강 - 총 피해; } else if (화면 ==3) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("플레이어 체력:"); lcd.setCursor(0, 1); lcd.print(건강); } else if (화면 ==4) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("적의 체력:"); lcd.setCursor(0, 1); lcd.print(ehealth); } Serial.println(건강, 건강);}
#include섹션>LiquidCrystal lcd(8, 9, 4, 5, 6, 7); 정수 차례 =1; //변수 설정 int screen =0; 정수 건강 =10; int ehealth =10; int 공격 데미지 =0; 정수 통계 =0; int totaldamage =공격 데미지 + 통계; int 공격 데미지 =0; 정수 =0; int etotaldamage =Eattackdamage + estats; int 적공격 =random(1, 5); int attack =0;void setup() { totaldamage =attackdamage + stats; // 데미지 계산 공식 재정의 etotaldamage =Eattackdamage + estats; lcd.begin(16, 2); //LCD 설정}void loop() { totaldamage =attackdamage + stats; // 데미지 계산 공식 재정의 etotaldamage =Eattackdamage + estats; 통계 =0; // 일부 변수 재정의 stats =0; 공격 데미지 =0; 공격 데미지 =0; 정수 버튼=analogRead(A0); if (health <=0) { // lcd.clear()를 잃어버렸는지 확인합니다. lcd.setCursor(0, 0); lcd.print("당신은 졌습니다"); } if (ehealth <=0) { //승리 여부를 확인합니다. lcd.clear(); lcd.setCursor(0, 0); lcd.print("당신이 이겼습니다!"); } if(button>=500&&button<=750) { //화면 전환에 사용되는 버튼 설정 screen =screen + 1; 지연(1000); 적의 공격 =random(1, 5); Serial.println('5'); } if (screen> 4) { //스크린 4를 통과하면 화면을 재설정합니다. screen =0; 턴 =턴 + 1; 적의 공격 =random(1, 5); } if (screen ==0) {//디스플레이 turn lcd.clear(); lcd.setCursor(0, 0); lcd.print("회전"); lcd.setCursor(0, 1); lcd.print(턴); } else if (screen ==1) {//공격 화면 lcd.setCursor(0, 0); lcd.print("당신이 사용했습니다"); lcd.setCursor(0, 1); if(button>=0&&button<=50) {//공격 결정 lcd.clear(); lcd.setCursor(0, 0); lcd.print("당신이 사용했습니다"); lcd.setCursor(0, 1); lcd.print("이신의 칼날"); 공격 데미지 =2; } else if(버튼>=50&&버튼<=150) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("당신이 사용했습니다"); lcd.setCursor(0, 1); lcd.print("카나스의 직원"); 공격 데미지 =1; 통계 =통계 + 1; 지연(1000); } else if(버튼>=150&&버튼<=300) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("당신이 사용했습니다"); lcd.setCursor(0, 1); lcd.print("Tories의 주문"); 공격 데미지 =0; 통계 =통계 + 2; 지연(1000); } else if(버튼>=300&&버튼<=500) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("당신이 사용했습니다"); lcd.setCursor(0, 1); lcd.print("메세우스의 물약"); 공격 데미지 =0; 건강 =건강 + 2; 지연(1000); } } else if (screen ==2) {//적이 공격 lcd.clear(); lcd.setCursor(0, 0); lcd.print("사용된 악마"); lcd.setCursor(0, 1); if (enemyattack ==1) { lcd.print("뼈창"); 먹튀 데미지 =2; 지연(1000); } else if (enemyattack ==2){ lcd.print("저주받은 칼날"); 공격 데미지 =1; 통계 =통계 ++; 지연(1000); } else if (enemyattack ==3){ lcd.print("저주받은 주문"); 먹튀 데미지 =3; 재산 =재산 - 2; 지연(1000); } else if (enemyattack ==4){ lcd.print("해골 의식"); 공격 데미지 =0; 재산 =재산 + 2; 지연(1000); } ehealth =ehealth - totaldamage; // 데미지 계산 health =health - totaldamage; } else if (screen ==3) {//플레이어 건강 표시 lcd.clear(); lcd.setCursor(0, 0); lcd.print("플레이어 체력:"); lcd.setCursor(0, 1); lcd.print(건강); } else if (screen ==4) {//적의 체력을 표시합니다. lcd.clear(); lcd.setCursor(0, 0); lcd.print("적의 체력:"); lcd.setCursor(0, 1); lcd.print(ehealth); }}//코드 종료
제조공정
구성품 및 소모품 Arduino Nano R3 × 1 Maxim 통합 DS3231M - ±5ppm, I2C 실시간 클록 × 1 푸시버튼 스위치, 순간 × 2 LED 매트릭스 모듈 32x8 × 1 필요한 도구 및 기계 납땜 인두(일반) 앱 및 온라인 서비스 Arduino IDE 이 프로젝트 정보 Nick의 LED 프로젝트 페이지에서 시계 프로젝트 마녀가 8x8 LED가 있는
구성품 및 소모품 초음파 센서 - HC-SR04(일반) × 3 DFRobot DF 플레이어 미니 × 1 SparkFun Arduino Pro Mini 328 - 5V/16MHz UNO 또는 Nanao가 작동합니다 × 1 PCBWay 맞춤형 PCB https://www.pcbway.com/project/shareproject/Talking_Smart_Glass_For_Blind.html × 1 맞춤형 PCB(JLCPCB) × 1 3.5mm