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, Studeni
Anonim
Slika
Slika

Još jedna video igra za arduino.odlična je igra naprednija je od zadnje koju objavljujem. Zašto je složenija od drugih? Kompleksnija je jer može skakati i pucati te imati zvučnu svjetlost i novu metodu za bodovanje.

Pribor

  1. Arduino.
  2. Oglasna ploča
  3. kratkospojne žice
  4. Crvena LED
  5. 2 tipke
  6. 2 otpornika od 10 k ohma
  7. 2 otpornika 220R.
  8. Izuzetno svijetla plava LED dioda.
  9. piezo zujalica
  10. 16*2 LCD zaslon

Korak 1: Ožičite sve 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 jednu od tipki za skok, a drugu 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 angryante e frustante mas muito divertido.

#uključi

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; bez potpisa dugi bod = 0; // postavlja gumbne oznake 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 toč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 pritisnut button2 jer ako se pritisne jednom u prvoj for petlji, želim da se prepreke ne zapisuju do kraja bool temp = 0; // ova varijabla pohranjuje položaje ratnika dok puca. može biti 16 položaja jer ratnik ima 16 položaja. int tempI [16]; // Koristim ovu logičku vrijednost za provjeru je li točka uhvaćena bool temp1 = 0;

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

int tempI1 [3]; // koristiti ovu varijablu za broj snimaka ratnika, što je ujedno i duljina polja tempI int button2IsPressed = 0; LCD tekući kristal (rs, en, d4, d5, d6, d7);

void setup () {

// postavljanje broja stupaca i redaka LCD -a: lcd.begin (16, 2); // postavljanje načina rada pinpinode 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 = slučajno (5);

za (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.tisak (poeni); 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 bodova

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

}

Preporučeni: