Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Toinen arduino -videopeli on loistava peli, joka on kehittyneempi kuin edellinen julkaisemani.
Tarvikkeet
- Arduino.
- Leipälauta
- hyppyjohtimet
- Punainen LED
- 2 painonappia
- 2 10 k ohmin vastusta
- 2 220R vastukset.
- Erittäin kirkas sininen LED.
- pietsosummeri
- 16*2 LCD -näyttö
Vaihe 1: Kytke kaikki yhteen
Nyt sinun on johdettava kaikki
Vaihe 2: Kuinka pelata:
- Käynnistä arduino.
- Nestekidenäytön pitäisi tulostua: "peli alkaa" ja lähtölaskenta.
- Paina yhtä painikkeista hypätäksesi ja toista ampuaksesi.
- jokainen lohko, jonka hyppäät, voitit yhden pisteen ja jokainen *, jonka sait, antaa sinulle 5 pistettä.
- Kun sinulla on 50 pistettä tai enemmän, voitit
Vaihe 3: Koodi
// este jogo e muito interessante e ao mesmo tempo irritante and frustante mas muito divertido.
#sisältää
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
const int -painikePin1 = 1; const int -painikePin2 = 6; const int summeri = 7; allekirjoittamattomat pitkät pts = 0; // set buttonstates bool buttonState1 = 0; bool buttonState2 = 0; // satunnaisluku esteiden sijainnille satunnaisestiNums [6]; // satunnaisluku esteiden lukumäärälle int randomNum = 0; // satunnaisluku pts: n sijainnille int randomNums1 [3]; // satunnaisluku pts -lukumäärälle int randomNum1 = 0; // aloitusviive, joka pienenee vähitellen unsigned int myDelay = 500; // teki tämän boolen tarkistaakseen, painetaanko painiketta 2, koska jos sitä painetaan kerran ensimmäisessä silmukassa, haluan, että esteitä ei kirjoiteta ennen kuin se päättyy bool temp = 0; // tämä muuttuja tallentaa soturin asemat hänen ampumisen aikana. siellä voi olla 16 asemaa, koska soturilla on 16 asemaa. sisäinen lämpötila [16]; // käytän tätä booleania tarkistaakseni, onko piste kiinni bool temp1 = 0;
// käytä tätä muuttujaa tallennetun pisteen sijainnin tallentamiseen. sen on oltava ja matriisi, joka tallentaa kaikkien pisteiden sijainnin ensimmäiseen silmukan iteraatioon. jos se tallentaisi vain yhden sijainnin, "vanha" piste palaisi takaisin uudessa iteraatiossa
int tempI1 [3]; // käytä tätä muuttujaa saadaksesi useita laukauksia soturista, joka on myös matriisin pituus tempI int button2IsPressed = 0; LiquidCrystal lcd (rs, en, d4, d5, d6, d7);
void setup () {
// aseta nestekidenäytön sarakkeiden ja rivien määrä: lcd.begin (16, 2); // aseta nastatila pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (summeri, OUTPUT); lcd.setCursor (4, 0); lcd.print ("PELI"); lcd.setCursor (2, 1); lcd.print ("ALKAA"); lcd.print ("5"); viive (1000); lcd.setCursor (12, 1); lcd.print ("4"); viive (1000); lcd.setCursor (12, 1); lcd.print ("3"); viive (1000); lcd.setCursor (12, 1); lcd.print ("2"); viive (1000); lcd.setCursor (12, 1); lcd.print ("1"); viive (1000); lcd.clear ();
}
void loop () {
tässä:
randomNum = satunnainen (5);
(int i = 0; i9 && pts19 && pts29 && pts = 50) {pts = 0; myDelay = 500; lcd.clear (); lcd.setCursor (5, 0); lcd.print ("VICTORY"); ääni (summeri, 262); viive (200); ääni (summeri, 330); viive (200); ääni (summeri, 392); viive (100); ääni (summeri, 330); viive (100); ääni (summeri, 392); viive (100); ääni (summeri, 523); viive (200); noTone (summeri); viive (3000); lcd.clear (); mene tänne; } else lcd.setCursor (15, 0); lcd.print (pts); buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); // esteiden asettaminen, jos soturi ei ampunut tai hän ampui, mutta hän myös hyppäsi, jos (! temp) {for (int j = 0; jrandomNums [j]) {lcd.setCursor (randomNums [j], 1); lcd.print ("#"); }
}
}
// pisteiden asettaminen
jos (! temp1) {for (int j = 0; j
}