Turinys:

„Ninja Dollar“žaidimas „Arduino“: 3 žingsniai
„Ninja Dollar“žaidimas „Arduino“: 3 žingsniai
Anonim
Vaizdas
Vaizdas

Kitas arduino vaizdo žaidimas. Tai puikus žaidimas, kuris yra pažangesnis nei paskutinis, kurį paskelbiau. Kodėl jis yra sudėtingesnis nei kiti? Jis yra sudėtingesnis, nes tai gali šokinėti ir šaudyti, turėti šviesą ir naują taškų kont metodą.

Prekės

  1. Arduino.
  2. Bandomoji Lenta
  3. jungiamieji laidai
  4. Raudonas šviesos diodas
  5. 2 mygtukai
  6. 2 10k omų rezistoriai
  7. 2 220R rezistoriai.
  8. Itin ryškus mėlynas LED.
  9. pjezo garsinis signalas
  10. 16*2 LCD ekranas

1 žingsnis: prijunkite viską kartu

Sujungti viską kartu
Sujungti viską kartu

Dabar reikia viską sujungti

2 žingsnis: Kaip žaisti:

  1. Įjunkite arduino.
  2. Skystųjų kristalų ekrane turėtų būti atspausdinta: „žaidimas prasideda“ir atgalinis laikas.
  3. Paspauskite vieną iš mygtukų, jei norite šokinėti, o kitą - šaudyti.
  4. kiekvienas iššokęs blokas laimėjote vieną tašką, o kiekvienas *, kurį sugavote, suteikia 5 taškus.
  5. Kai turite 50 ar daugiau taškų, laimėjote

3 žingsnis: Kodas

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

#įtraukti

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

const int mygtukasPin1 = 1; const int mygtukasPin2 = 6; const int garsinis signalas = 7; nepasirašyti ilgi pts = 0; // set buttonstates bool buttonState1 = 0; bool buttonState2 = 0; // atsitiktinis skaičius kliūčių padėčiai int randomNums [6]; // atsitiktinis skaičius kliūčių skaičiui int randomNum = 0; // atsitiktinis pts padėties skaičius int randomNums1 [3]; // atsitiktinis pts skaičiaus skaičius int randomNum1 = 0; // pradžios atidėjimo laikas, kuris palaipsniui mažėja neparašytas int myDelay = 500; // padarė šį loginį, kad patikrintų, ar yra paspaustas mygtukas2, nes jei jis pirmą kartą paspaudžiamas ciklui, noriu, kad kliūtys nebūtų rašomos iki jo pabaigos bool temp = 0; // šis kintamasis saugo kario pozicijas, kol jis šaudo. gali būti 16 pozicijų, nes karys turi 16 pozicijų. int tempI [16]; // Aš naudoju šį loginį tikrinant, ar taškas yra sugautas bool temp1 = 0;

// naudokite šį kintamąjį, kad išsaugotumėte pagauto taško padėtį. jis turi būti ir masyvas, kad visų taškų padėtis būtų saugoma vienoje pirmosios ciklo iteracijoje. jei būtų išsaugota tik viena pozicija, „senasis“taškas vėl sugrįžtų naujoje iteracijoje

int tempI1 [3]; // naudokite šį kintamąjį, kad gautumėte kario kadrų skaičių, kuris taip pat yra masyvo ilgis tempI int button2IsPressed = 0; „LiquidCrystal“LCD (rs, en, d4, d5, d6, d7);

void setup () {

// nustatyti LCD stulpelių ir eilučių skaičių: lcd.begin (16, 2); // nustatyti sagos režimą pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (garsinis signalas, OUTPUT); lcd.setCursor (4, 0); lcd.print („ŽAIDIMAS“); lcd.setCursor (2, 1); lcd.print ("PRADEDA"); lcd.print ("5"); vėlavimas (1000); lcd.setCursor (12, 1); lcd.print ("4"); vėlavimas (1000); lcd.setCursor (12, 1); lcd.print ("3"); vėlavimas (1000); lcd.setCursor (12, 1); lcd.print ("2"); vėlavimas (1000); lcd.setCursor (12, 1); lcd.print ("1"); vėlavimas (1000); lcd.clear ();

}

void loop () {

čia:

randomNum = atsitiktinis (5);

už (int i = 0; i9 && pts19 && pts29 && pts = 50) {pts = 0; myDelay = 500; lcd.clear (); lcd.setCursor (5, 0); lcd.print ("VICTORY"); tonas (garsinis signalas, 262); vėlavimas (200); tonas (garsinis signalas, 330); vėlavimas (200); tonas (garsinis signalas, 392); vėlavimas (100); tonas (garsinis signalas, 330); vėlavimas (100); tonas (garsinis signalas, 392); vėlavimas (100); tonas (garsinis signalas, 523); vėlavimas (200); noTone (garsinis signalas); vėlavimas (3000); lcd.clear (); eik čia; } else lcd.setCursor (15, 0); lcd.print (tšk.); buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); // kliūčių nustatymas, jei karys nešaudė arba jis šaudė, bet taip pat pašoko, jei (! temp) {for (int j = 0; jrandomNums [j]) {lcd.setCursor (randomNums [j], 1); lcd.print ("#"); }

}

}

// nustatymas pts

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

}

Rekomenduojamas: