Përmbajtje:

"Dollar Ninja" loja për Arduino: 3 hapa
"Dollar Ninja" loja për Arduino: 3 hapa

Video: "Dollar Ninja" loja për Arduino: 3 hapa

Video:
Video: Kiosk mode Bruteforce Evasion with Flipper Zero 2024, Korrik
Anonim
Imazhi
Imazhi

Një lojë video tjetër për arduino. Është një lojë e shkëlqyeshme është më e avancuar se sa publikova e fundit. Pse është më komplekse se të tjerat? Moreshtë më komplekse sepse kjo mund të kërcejë dhe shkrepë dhe të ketë një dritë të shëndoshë dhe një metodë të re të kont pikave.

Furnizimet

  1. Arduino.
  2. Breadboard
  3. telat e kërcyesit
  4. LED i kuq
  5. 2 butona shtypës
  6. 2 rezistente 10khm
  7. 2 rezistencë 220R.
  8. LED me shkëlqim blu të ndritshëm.
  9. zile piezo
  10. Ekran LCD 16*2

Hapi 1: Instaloni gjithçka së bashku

Instalimi i gjithçkaje së bashku
Instalimi i gjithçkaje së bashku

Tani ju duhet të lidhni gjithçka

Hapi 2: Si të luani:

  1. Ndizni arduino.
  2. LCD -ja duhet të printojë: "loja fillon brenda" dhe një numërim mbrapsht.
  3. Shtypni një nga butonat për të kërcyer dhe tjetrin për të qëlluar.
  4. çdo bllok që hidheni fitoni një pikë dhe çdo * që kapni ju jep 5 pikë.
  5. Kur keni 50 pikë ose më shumë fitoni

Hapi 3: Kodi

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

#përfshi

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

const int buttonPin1 = 1; const int buttonPin2 = 6; const int zile = 7; pts të gjata të panënshkruara = 0; // vendosni butonat e gjendjes butonin bool buttonState1 = 0; bool buttonState2 = 0; // numri i rastësishëm për pozicionin e pengesave në numrat e rastësishëm [6]; // numri i rastësishëm për numrin e pengesave int randomNum = 0; // numri i rastësishëm për pozicionin e pts int randomNums1 [3]; // numri i rastësishëm për numrin e pikëve në randomNum1 = 0; // koha e fillimit të vonesës, e cila zvogëlohet gradualisht e panënshkruar në myDelay = 500; // e bëri këtë boolean për të kontrolluar nëse butoni 2 është shtypur sepse nëse shtypet një herë në lakin e parë unë dua që pengesat të mos shkruhen deri në fund të tij bool temp = 0; // kjo ndryshore ruan pozicionet e luftëtarit ndërsa gjuan. mund të ketë 16 pozicione sepse luftëtari ka 16 pozicione. int tempI [16]; // Unë e përdor këtë boolean për të kontrolluar nëse pika është kapur bool temp1 = 0;

// përdorni këtë ndryshore për të ruajtur pozicionin e pikës së kapur. duhet të jetë dhe grup për të ruajtur pozicionin e të gjitha pikave në një përsëritje të lakut të parë për. nëse ruan vetëm një pozicion, atëherë pika "e vjetër" do të kthehej në përsëritjen e re

int tempI1 [3]; // përdorni këtë variabël për të pasur një numër goditjesh të luftëtarit, e cila është gjithashtu gjatësia e një butoni tempI int button2IsPressed = 0; LiquidCrystal LCD (rs, en, d4, d5, d6, d7);

void setup () {

// vendosni numrin e kolonave dhe rreshtave të LCD: lcd.filloni (16, 2); // vendosni modalitetin e butonit pinMode (buttonPin1, INPUT); pinMode (butoniPin2, HYRJE); pinMode (zile, OUTPUT); lcd.setCursor (4, 0); lcd.print ("LOJA"); lcd.setCursor (2, 1); lcd.print ("FILLON N" "); lcd.print ("5"); vonesa (1000); lcd.setCursor (12, 1); lcd.print ("4"); vonesa (1000); lcd.setCursor (12, 1); lcd.print ("3"); vonesa (1000); lcd.setCursor (12, 1); lcd.print ("2"); vonesa (1000); lcd.setCursor (12, 1); lcd.print ("1"); vonesa (1000); lcd.qartë ();

}

lak void () {

ketu:

randomNum = rastësor (5);

për (int i = 0; i9 && pts19 && pts29 && pts = 50) {pts = 0; vonesa ime = 500; lcd.qartë (); lcd.setCursor (5, 0); lcd.print ("FITORE"); toni (zile, 262); vonesë (200); ton (zile, 330); vonesë (200); toni (zile, 392); vonesë (100); toni (zile, 330); vonesë (100); toni (zile, 392); vonesë (100); toni (zile, 523); vonesë (200); noTone (zile); vonesë (3000); lcd.qartë (); mbërrita këtu; } else lcd.setCursor (15, 0); lcd.print (pts); buttonState1 = digitalRead (butoniPin1); buttonState2 = digitalRead (butoniPin2); // vendosja e pengesave nëse luftëtari nuk qëlloi ose qëlloi, por ai gjithashtu kërceu nëse (! temp) {për (int j = 0; jrandomNums [j]) {lcd.setCursor (randomNums [j], 1); lcd.print ("#"); }

}

}

// vendosja e pikëve

nëse (! temp1) {për (int j = 0; j

}

Recommended: