Съдържание:

"Долар на нинджа" Играта за Arduino: 3 стъпки
"Долар на нинджа" Играта за Arduino: 3 стъпки

Видео: "Долар на нинджа" Играта за Arduino: 3 стъпки

Видео:
Видео: Дедушка не выдержал и дал ответ за Украинский флаг 2024, Юли
Anonim
Образ
Образ

Друга видео игра за arduino. Това е страхотна игра, която е по -напреднала от последната, която публикувам. Защо е по -сложна от другите? Тя е по -сложна, защото това може да скочи и да стреля и да има звукова светлина и нов метод за продължаване на точки.

Консумативи

  1. Arduino.
  2. Платка
  3. джъмперни проводници
  4. Червен светодиод
  5. 2 бутона за натискане
  6. 2 10k ома резистора
  7. 2 резистора 220R.
  8. Супер ярък син светодиод.
  9. пиезо зумер
  10. 16*2 LCD дисплей

Стъпка 1: Свържете всичко заедно

Окабеляване на всичко заедно
Окабеляване на всичко заедно

Сега трябва да свържете всичко

Стъпка 2: Как да играете:

  1. Включете arduino.
  2. LCD дисплеят трябва да отпечата: „играта започва в“и обратно броене.
  3. Натиснете един от бутоните за скок и друг за стрелба.
  4. всеки блок, който прескачате, печелите по една точка и всеки *, който хванете, ви дава 5 точки.
  5. Когато имате 50 или повече точки, вие спечелихте

Стъпка 3: Кодът

// este jogo e muito interessante e ao mesmo tempo angryante e frustante mas muito divertido.

#включва

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;

const int buttonPin1 = 1; const int buttonPin2 = 6; const int зумер = 7; беззначни дълги точки = 0; // задаване на бутони бутони bool buttonState1 = 0; bool buttonState2 = 0; // случайно число за положение на препятствия int randomNums [6]; // случайно число за брой препятствия int randomNum = 0; // случайно число за позиция на точки int randomNums1 [3]; // случайно число за брой точки int randomNum1 = 0; // време на забавяне при стартиране, което намалява постепенно без знак int myDelay = 500; // направих това логическо значение, за да проверя дали бутон2 е натиснат, защото ако е натиснат веднъж в първия цикъл for, искам препятствията да не се записват до края на него bool temp = 0; // тази променлива съхранява позициите на воина, докато той стреля. може да има 16 позиции, защото воинът има 16 позиции. int tempI [16]; // използвам това логическо значение, за да проверя дали точката е уловена bool temp1 = 0;

// използваме тази променлива за съхраняване на позицията на уловената точка. трябва да бъде и масив за съхраняване на позицията на всички точки в една итерация на първия цикъл for. ако съхранява само една позиция, тогава "старата" точка ще се върне в новата итерация

int tempI1 [3]; // използваме тази променлива, за да имаме няколко снимки на воина, което е и дължината на масив tempI int button2IsPressed = 0; LiquidCrystal lcd (rs, en, d4, d5, d6, d7);

void setup () {

// настройваме броя на колоните и редовете на LCD дисплея: lcd.begin (16, 2); // задаване на режим на закрепване на бутони pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (зумер, OUTPUT); lcd.setCursor (4, 0); lcd.print ("ИГРАТА"); lcd.setCursor (2, 1); lcd.print ("НАЧАЛО В"); lcd.print ("5"); забавяне (1000); lcd.setCursor (12, 1); lcd.print ("4"); забавяне (1000); lcd.setCursor (12, 1); lcd.print ("3"); забавяне (1000); lcd.setCursor (12, 1); lcd.print ("2"); забавяне (1000); lcd.setCursor (12, 1); lcd.print ("1"); забавяне (1000); lcd.clear ();

}

void loop () {

тук:

randomNum = случаен (5);

for (int i = 0; i9 && pts19 && pts29 && pts = 50) {pts = 0; myDelay = 500; lcd.clear (); lcd.setCursor (5, 0); lcd.print ("ПОБЕДА"); тон (зумер, 262); забавяне (200); тон (зумер, 330); забавяне (200); тон (зумер, 392); забавяне (100); тон (зумер, 330); забавяне (100); тон (зумер, 392); забавяне (100); тон (зумер, 523); забавяне (200); noTone (зумер); забавяне (3000); lcd.clear (); отидете тук; } else lcd.setCursor (15, 0); lcd.print (точки); buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); // поставяне на препятствия, ако воинът не е стрелял или е стрелял, но също е скочил, ако (! temp) {for (int j = 0; jrandomNums [j]) {lcd.setCursor (randomNums [j], 1); lcd.print ("#"); }

}

}

// настройка на точки

if (! temp1) {for (int j = 0; j

}

Препоръчано: