Inhaltsverzeichnis:

"Ninja Dollar" das Spiel für Arduino - Gunook
"Ninja Dollar" das Spiel für Arduino - Gunook

Video: "Ninja Dollar" das Spiel für Arduino - Gunook

Video:
Video: Ninja Dollar - LCD game 2024, Juli
Anonim
Bild
Bild

Ein weiteres Videospiel für arduino.it ist ein großartiges Spiel, das fortgeschrittener ist als das letzte, das ich veröffentliche. Warum ist es komplexer als andere? Es ist komplexer, weil es springen und schießen kann und ein Soundlicht und eine neue Punktekont-Methode hat.

Lieferungen

  1. Arduinos.
  2. Steckbrett
  3. Überbrückungsdrähte
  4. Rote LED
  5. 2 Druckknöpfe
  6. 2 10k Ohm Widerstände
  7. 2 220R-Widerstände.
  8. Superhelle blaue LED.
  9. Piezo-Summer
  10. 16 * 2 LCD-Anzeige

Schritt 1: Alles zusammen verdrahten

Alles zusammen verkabeln
Alles zusammen verkabeln

Jetzt musst du alles verkabeln

Schritt 2: Spielanleitung:

  1. Schalten Sie das Arduino ein.
  2. Das LCD sollte drucken: "das Spiel beginnt in" und einen Countdown.
  3. Drücken Sie eine der Tasten, um zu springen und eine andere, um zu schießen.
  4. Jeder Block, den du springst, hast du einen Punkt gewonnen und jeder *, den du fängst, gibt dir 5 Punkte.
  5. Wenn Sie 50 oder mehr Punkte haben, haben Sie gewonnen

Schritt 3: Der Code

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

#enthalten

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

const int buttonPin1=1; const int buttonPin2=6; const int Summer=7; unsigned long pts=0; // setze buttonstates bool buttonState1=0; bool buttonState2=0; //Zufallszahl für die Position von Hindernissen int randomNums[6]; //Zufallszahl für die Anzahl der Hindernisse int randomNum=0; //Zufallszahl für die Position von Punkten int randomNums1[3]; //Zufallszahl für die Anzahl der Punkte int randomNum1=0; // Startverzögerungszeit, die allmählich abnimmt unsigned int myDelay=500; // habe diesen booleschen Wert erstellt, um zu überprüfen, ob button2 gedrückt wird, denn wenn er einmal in der ersten for-Schleife gedrückt wird, möchte ich, dass Hindernisse nicht bis zum Ende geschrieben werden bool temp = 0; //Diese Variable speichert die Positionen des Kriegers, während er schießt. es kann 16 Positionen geben, weil der Krieger 16 Positionen hat. int tempI[16]; // Ich verwende diesen booleschen Wert, um zu überprüfen, ob der Punkt abgefangen wurde bool temp1 = 0;

// Verwenden Sie diese Variable, um die Position des gefangenen Punkts zu speichern. es muss und array sein, um die Position aller Punkte in einer Iteration der ersten for-Schleife zu speichern. Wenn es nur eine Position gespeichert hat, würde der "alte" Punkt in der neuen Iteration zurückkommen

int tempI1[3]; // Verwenden Sie diese Variable, um eine Anzahl von Aufnahmen des Kriegers zu erhalten, die auch die Länge eines Arrays ist tempI int button2IsPressed=0; Flüssigkristallanzeige (rs, en, d4, d5, d6, d7);

Leere Einrichtung () {

// die Anzahl der Spalten und Zeilen des LCD einrichten: lcd.begin (16, 2); // Buttonpin-Modus einstellen PinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (Summer, AUSGANG); lcd.setCursor(4, 0); lcd.print("DAS SPIEL"); lcd.setCursor(2, 1); lcd.print("BEGINNT IN"); lcd.print("5"); Verzögerung (1000); lcd.setCursor(12, 1); lcd.print("4"); Verzögerung (1000); lcd.setCursor(12, 1); lcd.print("3"); Verzögerung (1000); lcd.setCursor(12, 1); lcd.print("2"); Verzögerung (1000); lcd.setCursor(12, 1); lcd.print("1"); Verzögerung (1000); lcd.clear();

}

Leere Schleife () {

Hier:

randomNum=zufällig(5);

for(int i=0; i9 && pts19 && pts29 && pts=50){ pts=0; myDelay=500; lcd.clear(); lcd.setCursor(5, 0); lcd.print("Sieg"); Ton (Summer, 262); Verzögerung (200); Ton (Summer, 330); Verzögerung (200); Ton (Summer, 392); Verzögerung (100); Ton (Summer, 330); Verzögerung (100); Ton (Summer, 392); Verzögerung (100); Ton (Summer, 523); Verzögerung (200); kein Ton (Summer); Verzögerung (3000); lcd.clear(); gehe hierher; aufrechtzuerhalten. Sonst lcd.setCursor(15, 0); lcd.print (pts); buttonState1=digitalRead(buttonPin1); buttonState2 = digitalRead (buttonPin2); // Hindernisse setzen, wenn der Krieger nicht geschossen hat oder geschossen hat, aber er ist auch gesprungen if(!temp){ for(int j=0; jrandomNums[j]){ lcd.setCursor(randomNums[j], 1); lcd.print("#"); }

}

}

//Punkte setzen

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

}

Empfohlen: