Sadržaj:

"Ninja dolar" igra za Arduino: 3 koraka
"Ninja dolar" igra za Arduino: 3 koraka

Video: "Ninja dolar" igra za Arduino: 3 koraka

Video:
Video: Дедушка не выдержал и дал ответ за Украинский флаг 2024, Juli
Anonim
Image
Image

Još jedna video igra za arduino.odlična igra naprednija je od posljednje koju objavljujem. Zašto je složenija od drugih? Kompleksnija je jer može skakati i pucati i imati zvučno svjetlo i novu metodu bodovanja.

Supplies

  1. Arduino.
  2. Breadboard
  3. kratkospojne žice
  4. Crvena LED
  5. 2 tastera
  6. 2 otpornika od 10 k ohma
  7. 2 otpornika 220R.
  8. Izuzetno svijetla plava LED dioda.
  9. piezo zujalica
  10. 16*2 LCD ekran

Korak 1: Sve spojite zajedno

Ožičenje svega zajedno
Ožičenje svega zajedno

Sada morate sve ožičiti

Korak 2: Kako igrati:

  1. Uključite arduino.
  2. LCD bi trebao ispisati: "igra počinje za" i odbrojavanje.
  3. Pritisnite jedno od dugmadi za skok, a drugo za snimanje.
  4. svaki blok koji preskočite osvojili ste jedan bod i svaki * koji ulovite daje vam 5 bodova.
  5. Ako imate 50 bodova ili više, pobijedili ste

Korak 3: Kôd

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

#include

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

const int buttonPin1 = 1; const int buttonPin2 = 6; const int zujalica = 7; nepotpisani dugi poeni = 0; // postavljanje dugmadi bool buttonState1 = 0; bool buttonState2 = 0; // slučajni broj za položaj prepreka int randomNums [6]; // slučajni broj za broj prepreka int randomNum = 0; // slučajni broj za poziciju tačaka int randomNums1 [3]; // slučajni broj za broj bodova int randomNum1 = 0; // vrijeme kašnjenja početka, koje se postupno smanjuje unsigned int myDelay = 500; // napravio ovu logičku vrijednost da provjeri je li pritisnuto button2 jer ako se pritisne jednom u prvoj for petlji, želim da se prepreke ne zapisuju do kraja bool temp = 0; // ova varijabla pohranjuje pozicije ratnika dok puca. može postojati 16 pozicija jer ratnik ima 16 pozicija. int tempI [16]; // Koristim ovu logičku vrijednost da provjerim je li točka uhvaćena bool temp1 = 0;

// koristi ovu varijablu za spremanje položaja hvaćene tačke. mora biti i niz za spremanje položaja svih točaka u jednu iteraciju prve for petlje. ako je pohranila samo jednu poziciju, tada bi se "stara" točka vratila u novoj iteraciji

int tempI1 [3]; // koristimo ovu varijablu za brojne snimke ratnika, što je ujedno i dužina niza tempI int button2IsPressed = 0; LiquidCrystal lcd (rs, en, d4, d5, d6, d7);

void setup () {

// postavljanje broja stupaca i redova LCD -a: lcd.begin (16, 2); // postavljanje načina rada pin -moda pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (zujalica, OUTPUT); lcd.setCursor (4, 0); lcd.print ("IGRA"); lcd.setCursor (2, 1); lcd.print ("POČINJE"); lcd.print ("5"); kašnjenje (1000); lcd.setCursor (12, 1); lcd.print ("4"); kašnjenje (1000); lcd.setCursor (12, 1); lcd.print ("3"); kašnjenje (1000); lcd.setCursor (12, 1); lcd.print ("2"); kašnjenje (1000); lcd.setCursor (12, 1); lcd.print ("1"); kašnjenje (1000); lcd.clear ();

}

void loop () {{100} {101}

ovdje:

randomNum = random (5);

for (int i = 0; i9 && pts19 && pts29 && pts = 50) {pts = 0; myDelay = 500; lcd.clear (); lcd.setCursor (5, 0); lcd.print ("POBJEDA"); ton (zujalica, 262); kašnjenje (200); ton (zujalica, 330); kašnjenje (200); ton (zujalica, 392); kašnjenje (100); ton (zujalica, 330); kašnjenje (100); ton (zujalica, 392); kašnjenje (100); ton (zujalica, 523); kašnjenje (200); noTone (zujalica); kašnjenje (3000); lcd.clear (); idi ovdje; } else lcd.setCursor (15, 0); lcd.print (pts); buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); // postavljanje prepreka ako ratnik nije pucao ili je pucao, ali je i skočio ako (! temp) {for (int j = 0; jrandomNums [j]) {lcd.setCursor (randomNums [j], 1); lcd.print ("#"); }

}

}

// postavljanje poena

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

}

Preporučuje se: