Sisukord:

"Ninja dollar" Arduino mäng: 3 sammu
"Ninja dollar" Arduino mäng: 3 sammu

Video: "Ninja dollar" Arduino mäng: 3 sammu

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

Teine videomäng arduino jaoks. See on suurepärane mäng, mis on arenenum kui viimane, mille ma avaldasin. Miks see on teistest keerulisem? See on keerulisem, sest see võib hüpata ja tulistada ning sellel on hele valgus ja uus punktide meetod.

Tarvikud

  1. Arduino.
  2. Leivalaud
  3. hüppaja juhtmed
  4. Punane LED
  5. 2 vajutusnuppu
  6. 2 10k oomi takistit
  7. 2 220R takistit.
  8. Super ere sinine LED.
  9. piesosummer
  10. 16*2 LCD ekraan

Samm: ühendage kõik kokku

Juhtmed kõik koos
Juhtmed kõik koos

Nüüd peate kõik juhtmega ühendama

2. samm: kuidas mängida:

  1. Lülitage arduino sisse.
  2. LCD -ekraan peaks printima: "mäng algab" ja loendur.
  3. Vajutage ühele nupule hüpata ja teisele nupule.
  4. iga plokk, mille hüppasite, võitis ühe punkti ja iga tabatud * annab teile 5 punkti.
  5. Kui teil on 50 punkti või rohkem, võitsite

3. samm: kood

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

#kaasake

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

const int nuppPin1 = 1; const int nuppPin2 = 6; const int helisignaal = 7; allkirjastamata pikad pts = 0; // set buttonstates bool buttonState1 = 0; bool buttonState2 = 0; // juhuslik arv takistuste asukoha jaoks int randomNums [6]; // juhuslik arv takistuste arvu int randomNum = 0; // juhuslik arv pts positsiooni int randomNums1 [3]; // juhuslik arv punktide arvu int randomNum1 = 0; // algusviivitusaeg, mis väheneb järk -järgult märkimata int myDelay = 500; // tegi selle tõeväärtuse, et kontrollida, kas nuppu 2 on vajutatud, sest kui seda vajutatakse üks kord silmuse jaoks, tahan, et takistusi ei kirjutataks enne selle lõppu bool temp = 0; // see muutuja salvestab sõdalase positsioone laskmise ajal. positsioone võib olla 16, sest sõdalasel on 16 positsiooni. int tempI [16]; // ma kasutan seda tõeväärtust, et kontrollida, kas punkt on tabatud bool temp1 = 0;

// kasutage seda muutujat püütud punkti asukoha salvestamiseks. see peab olema ja massiiv, et salvestada kõigi punktide positsioon ühe tsükli esimese iteratsiooni korral. kui see salvestaks vaid ühe positsiooni, tuleks "vana" punkt uues iteratsioonis tagasi

int tempI1 [3]; // kasuta seda muutujat, et teha mitmeid sõdalase kaadreid, mis on ka massiivi pikkus tempI int button2IsPressed = 0; LiquidCrystal LCD (rs, en, d4, d5, d6, d7);

tühine seadistus () {

// seadistage LCD veergude ja ridade arv: lcd.begin (16, 2); // määrake nööpnõela režiim pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (helisignaal, VÄLJUND); lcd.setCursor (4, 0); lcd.print ("MÄNG"); lcd.setCursor (2, 1); lcd.print ("STARTS IN"); lcd.print ("5"); viivitus (1000); lcd.setCursor (12, 1); lcd.print ("4"); viivitus (1000); lcd.setCursor (12, 1); lcd.print ("3"); viivitus (1000); lcd.setCursor (12, 1); lcd.print ("2"); viivitus (1000); lcd.setCursor (12, 1); lcd.print ("1"); viivitus (1000); lcd.clear ();

}

void loop () {

siin:

randomNum = juhuslik (5);

jaoks (int i = 0; i9 && pts19 && pts29 && pts = 50) {pts = 0; myDelay = 500; lcd.clear (); lcd.setCursor (5, 0); lcd.print ("VÕIT"); toon (sumin, 262); viivitus (200); toon (sumin, 330); viivitus (200); toon (sumin, 392); viivitus (100); toon (sumin, 330); viivitus (100); toon (sumin, 392); viivitus (100); toon (sumin, 523); viivitus (200); noTone (helisignaal); viivitus (3000); lcd.clear (); mine siia; } else lcd.setCursor (15, 0); lcd.print (pts); buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); // takistuste seadmine, kui sõdalane ei lasknud või ta tulistas, aga hüppas ka siis, kui (! temp) {for (int j = 0; jrandomNums [j]) {lcd.setCursor (randomNums [j], 1); lcd.print ("#"); }

}

}

// pts seadistamine

kui (! temp1) {jaoks (int j = 0; j

}

Soovitan: