„Ninja Dollar“hra pre Arduino: 3 kroky
„Ninja Dollar“hra pre Arduino: 3 kroky
Anonim
Obrázok
Obrázok

Ďalšia videohra pre arduino.je to skvelá hra, ktorá je pokročilejšia než tá, ktorú zverejňujem. Prečo je zložitejšia ako ostatné? Je to zložitejšie, pretože to môže skákať a strieľať a mať zvukové svetlo a novú metódu bodov.

Zásoby

  1. Arduino.
  2. Breadboard
  3. prepojovacie vodiče
  4. Červená LED
  5. 2 tlačidlá
  6. 2 odpory 10 kOhm
  7. 2 odpory 220R.
  8. Super jasná modrá LED dióda.
  9. piezový bzučiak
  10. 16*2 LCD displej

Krok 1: Zapojenie všetkého dohromady

Zapojenie všetkého dohromady
Zapojenie všetkého dohromady

Teraz musíte všetko prepojiť

Krok 2: Ako hrať:

  1. Zapnite arduino.
  2. Na displeji LCD by sa malo vytlačiť: „Hra začína o“a odpočítavanie.
  3. Stlačením jedného z tlačidiel skočíte a druhým vystrelíte.
  4. za každý vyskočený blok ste získali jeden bod a za každé * chytenie získate 5 bodov.
  5. Keď získate 50 bodov alebo viac, vyhrali ste

Krok 3: Kód

// záleží na tom, aby ste sa zaujímali o ďalšie tempo, ale aby ste to nesklamali, divertido.

#zahrnúť

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

tlačidlo const intPin1 = 1; tlačidlo const intPin2 = 6; bzučiak const int = 7; nepodpísané dlhé body = 0; // set buttonstates bool buttonState1 = 0; tlačidlo boolState2 = 0; // náhodné číslo pre polohu prekážok int randomNums [6]; // náhodné číslo pre počet prekážok int randomNum = 0; // náhodné číslo pre polohu pts int randomNums1 [3]; // náhodné číslo pre počet bodov int randomNum1 = 0; // čas oneskorenia spustenia, ktorý sa postupne znižuje bez znamienka int myDelay = 500; // toto bolo booleovské, aby skontroloval, či je stlačené tlačidlo2, pretože ak je stlačené raz v prvej slučke for, chcem, aby sa prekážky nepísali až do konca bool temp = 0; // táto premenná ukladá pozície bojovníka, keď strieľa. môže existovať 16 pozícií, pretože bojovník má 16 pozícií. int tempI [16]; // pomocou tejto logickej hodnoty skontrolujem, či je bod zachytený bool temp1 = 0;

// pomocou tejto premennej uložíte polohu zachyteného bodu. musí to byť a pole na uloženie polohy všetkých bodov v jednej iterácii prvej slučky for. ak by ukladal iba jednu pozíciu, potom by sa „starý“bod vrátil v novej iterácii

int tempI1 [3]; // pomocou tejto premennej získate počet záberov bojovníka, čo je tiež dĺžka poľa tempI int button2IsPressed = 0; LiquidCrystal lcd (rs, en, d4, d5, d6, d7);

neplatné nastavenie () {

// nastavenie počtu stĺpcov a riadkov na LCD: lcd.begin (16, 2); // nastavenie režimu pinpin pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (bzučiak, VÝSTUP); lcd.setCursor (4, 0); lcd.print („HRA“); lcd.setCursor (2, 1); lcd.print („ZAČÍNA V“); lcd.print ("5"); oneskorenie (1000); lcd.setCursor (12, 1); lcd.print ("4"); oneskorenie (1000); lcd.setCursor (12, 1); lcd.print ("3"); oneskorenie (1000); lcd.setCursor (12, 1); lcd.print ("2"); oneskorenie (1000); lcd.setCursor (12, 1); lcd.print ("1"); oneskorenie (1000); lcd.clear ();

}

prázdna slučka () {

tu:

randomNum = random (5);

pre (int i = 0; i9 && pts19 && pts29 && pts = 50) {pts = 0; myDelay = 500; lcd.clear (); lcd.setCursor (5, 0); lcd.print („VÍŤAZSTVO“); tón (bzučiak, 262); oneskorenie (200); tón (bzučiak, 330); oneskorenie (200); tón (bzučiak, 392); oneskorenie (100); tón (bzučiak, 330); oneskorenie (100); tón (bzučiak, 392); oneskorenie (100); tón (bzučiak, 523); oneskorenie (200); noTone (bzučiak); oneskorenie (3000); lcd.clear (); choď sem; } else lcd.setCursor (15, 0); lcd.print (body); buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); // kladenie prekážok, ak bojovník nevystrelil alebo vystrelil, ale tiež skočil, ak (! temp) {for (int j = 0; jrandomNums [j]) {lcd.setCursor (randomNums [j], 1); lcd.print ("#"); }

}

}

// nastavenie bodov

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

}