Sommario:

"Ninja Dollar" il gioco per Arduino: 3 passaggi
"Ninja Dollar" il gioco per Arduino: 3 passaggi

Video: "Ninja Dollar" il gioco per Arduino: 3 passaggi

Video:
Video: Alex Mucci SIGMATA da Marra 2024, Luglio
Anonim
Immagine
Immagine

Un altro videogioco per arduino.it è un grande gioco è più avanzato dell'ultimo che pubblico. Perché è più complesso di altri? È più complesso perché questo può saltare e sparare e avere una luce sonora e un nuovo metodo di punti cont.

Forniture

  1. Arduino.
  2. tagliere
  3. cavi per ponticelli
  4. LED rosso
  5. 2 pulsanti
  6. 2 resistori da 10k ohm
  7. 2 resistori 220R.
  8. LED blu super luminoso.
  9. cicalino piezoelettrico
  10. Display LCD 16*2

Passaggio 1: cablaggio di tutto insieme

Cablando tutto insieme
Cablando tutto insieme

Ora devi cablare tutto

Passaggio 2: come si gioca:

  1. Accendi l'arduino.
  2. Il display LCD dovrebbe stampare: "il gioco inizia tra" e un conto alla rovescia.
  3. Premi uno dei pulsanti per saltare e l'altro per sparare.
  4. ogni blocco che salti hai vinto un punto e ogni * che prendi ti dà 5 punti.
  5. Quando hai 50 punti o più hai vinto

Passaggio 3: il codice

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

#includere

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

const int buttonPin1=1; const int buttonPin2=6; const int cicalino=7; punti lunghi senza segno=0; //set buttonstates bool buttonState1=0; bool buttonState2=0; //numero casuale per la posizione degli ostacoli int randomNums[6]; //numero casuale per numero di ostacoli int randomNum=0; //numero casuale per la posizione dei punti int randomNums1[3]; //numero casuale per numero di punti int randomNum1=0; //start delay time, che decresce gradualmente unsigned int myDelay=500; // ho creato questo booleano per verificare se button2 è premuto perché se viene premuto una volta nel primo ciclo for voglio che gli ostacoli non vengano scritti fino alla fine bool temp=0; //questa variabile memorizza le posizioni del guerriero mentre spara. ci possono essere 16 posizioni perché il guerriero ha 16 posizioni. int temp[16]; // uso questo booleano per verificare se il punto viene catturato bool temp1=0;

//usa questa variabile per memorizzare la posizione del punto catturato. deve essere e array per memorizzare la posizione di tutti i punti in un'iterazione del primo ciclo for. se memorizzasse solo una posizione, il "vecchio" punto ritornerebbe nella nuova iterazione

int tempI1[3]; //usa questa variabile per avere un numero di scatti del guerriero, che è anche la lunghezza di un array tempI int button2IsPressed=0; LCD a cristalli liquidi (rs, en, d4, d5, d6, d7);

void setup() {

// imposta il numero di colonne e righe del display LCD: lcd.begin(16, 2); // imposta la modalità pin del pulsante pinMode(buttonPin1, INPUT); pinMode(pulsantePin2, INGRESSO); pinMode(cicalino, USCITA); lcd.setCursor(4, 0); lcd.print("IL GIOCO"); lcd.setCursor(2, 1); lcd.print("INIZIA IN "); lcd.print("5"); ritardo(1000); lcd.setCursor(12, 1); lcd.print("4"); ritardo(1000); lcd.setCursor(12, 1); lcd.print("3"); ritardo(1000); lcd.setCursor(12, 1); lcd.print("2"); ritardo(1000); lcd.setCursor(12, 1); lcd.print("1"); ritardo(1000); lcd.clear();

}

ciclo vuoto() {

qui:

numerocasuale=casuale(5);

for(int i=0; i9 && punti19 && punti29 && punti=50){ punti=0; mioRitardo=500; lcd.clear(); lcd.setCursor(5, 0); lcd.print("VITTORIA"); tono (cicalino, 262); ritardo(200); tono (cicalino, 330); ritardo(200); tono (cicalino, 392); ritardo(100); tono (cicalino, 330); ritardo(100); tono (cicalino, 392); ritardo(100); tono (cicalino, 523); ritardo(200); noTone(cicalino); ritardo (3000); lcd.clear(); vai qui; } else lcd.setCursor(15, 0); lcd.print(punti); buttonState1=digitalRead(buttonPin1); buttonState2=digitalRead(buttonPin2); //impostando ostacoli se il guerriero non ha sparato o ha sparato ma ha anche saltato if(!temp){ for(int j=0; jrandomNums[j]){ lcd.setCursor(randomNums[j], 1); lcd.print("#"); }

}

}

//impostazione punti

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

}

Consigliato: