Cuprins:

„Ninja Dollar” Jocul pentru Arduino: 3 pași
„Ninja Dollar” Jocul pentru Arduino: 3 pași

Video: „Ninja Dollar” Jocul pentru Arduino: 3 pași

Video: „Ninja Dollar” Jocul pentru Arduino: 3 pași
Video: TVneWs - O mama beata cade cu copilul în brate ! 2024, Noiembrie
Anonim
Imagine
Imagine

Un alt joc video pentru arduino.it este un joc grozav, este mai avansat decât ultimul pe care l-am publicat.

Provizii

  1. Arduino.
  2. Pană de pâine
  3. fire jumper
  4. LED roșu
  5. 2 butoane
  6. 2 rezistențe de 10k ohm
  7. 2 rezistoare 220R.
  8. LED-ul albastru super luminos.
  9. buzzer piezo
  10. Afisaj LCD 16 * 2

Pasul 1: Cablarea totul împreună

Cablarea totul împreună
Cablarea totul împreună

Acum trebuie să conectați totul

Pasul 2: Cum se joacă:

  1. Porniți arduino.
  2. Ecranul LCD ar trebui să tipărească: „jocul începe în” și o numărătoare inversă.
  3. Apăsați unul dintre butoane pentru a sări și altul pentru a fotografia.
  4. fiecare bloc pe care îl săriți a câștigat un punct și fiecare * pe care îl prindeți vă oferă 5 puncte.
  5. Când ai 50 de puncte sau mai mult ai câștigat

Pasul 3: Codul

// este jogo e muito interesante e ao mesmo tempo irritante e frustante mas muito divertido.

#include

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

butonul const intPin1 = 1; butonul const intPin2 = 6; const int buzzer = 7; puncte lungi nesemnate = 0; // set buttonstates bool buttonState1 = 0; buton boolStat2 = 0; // număr aleatoriu pentru poziția obstacolelor în randomNums [6]; // număr aleatoriu pentru numărul de obstacole int randomNum = 0; // număr aleatoriu pentru poziția punctelor în randomNums1 [3]; // număr aleatoriu pentru numărul de puncte int randomNum1 = 0; // începe timpul de întârziere, care scade treptat nesemnat în myDelay = 500; // a făcut acest boolean pentru a verifica dacă butonul 2 este apăsat, deoarece dacă este apăsat o dată în prima buclă, vreau să nu se scrie obstacole până la sfârșitul acestuia bool temp = 0; // această variabilă stochează pozițiile războinicului în timp ce acesta trage. pot exista 16 poziții deoarece războinicul are 16 poziții. int tempI [16]; // folosesc acest boolean pentru a verifica dacă punctul este prins bool temp1 = 0;

// utilizați această variabilă pentru a stoca poziția punctului prins. trebuie să fie și matrice pentru a stoca poziția tuturor punctelor într-o singură iterație a primei bucle for. dacă ar stoca o singură poziție, atunci punctul „vechi” ar reveni în noua iterație

int tempI1 [3]; // utilizați această variabilă pentru a avea un număr de fotografii ale războinicului, care este, de asemenea, lungimea unui buton tempI int matrice2IsPressed = 0; LiquidCrystal lcd (rs, en, d4, d5, d6, d7);

configurare nulă () {

// configurați numărul LCD de coloane și rânduri: lcd.begin (16, 2); // setează modul pin pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (buzzer, OUTPUT); lcd.setCursor (4, 0); lcd.print („JOCUL”); lcd.setCursor (2, 1); lcd.print („STARTS IN”); lcd.print ("5"); întârziere (1000); lcd.setCursor (12, 1); lcd.print ("4"); întârziere (1000); lcd.setCursor (12, 1); lcd.print ("3"); întârziere (1000); lcd.setCursor (12, 1); lcd.print ("2"); întârziere (1000); lcd.setCursor (12, 1); lcd.print ("1"); întârziere (1000); lcd.clear ();

}

bucla nulă () {

Aici:

randomNum = random (5);

pentru (int i = 0; i9 && pts19 && pts29 && pts = 50) {pts = 0; întârzierea mea = 500; lcd.clear (); lcd.setCursor (5, 0); lcd.print („VICTORIE”); ton (buzzer, 262); întârziere (200); ton (buzzer, 330); întârziere (200); ton (buzzer, 392); întârziere (100); ton (buzzer, 330); întârziere (100); ton (buzzer, 392); întârziere (100); ton (buzzer, 523); întârziere (200); noTone (buzzer); întârziere (3000); lcd.clear (); du-te aici; } else lcd.setCursor (15, 0); lcd.print (puncte); buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); // punerea obstacolelor dacă războinicul nu a tras sau a tras, dar a sărit și dacă (! temp) {for (int j = 0; jrandomNums [j]) {lcd.setCursor (randomNums [j], 1); lcd.print ("#"); }

}

}

// setarea punctelor

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

}

Recomandat: