Spisu treści:

Gra „Ninja Dollar” dla Arduino: 3 kroki
Gra „Ninja Dollar” dla Arduino: 3 kroki

Wideo: Gra „Ninja Dollar” dla Arduino: 3 kroki

Wideo: Gra „Ninja Dollar” dla Arduino: 3 kroki
Wideo: Дедушка не выдержал и дал ответ за Украинский флаг 2024, Lipiec
Anonim
Obraz
Obraz

Kolejna gra wideo dla arduino. to świetna gra jest bardziej zaawansowana niż ostatnia, którą opublikowałem. Dlaczego jest bardziej złożona niż inne? Jest bardziej złożona, ponieważ może skakać i strzelać, ma dźwięk światła i nową metodę kontrowania punktów.

Kieszonkowe dzieci

  1. Arduino.
  2. Deska do krojenia chleba
  3. przewody połączeniowe
  4. Czerwona dioda LED
  5. 2 przyciski
  6. 2 rezystory 10 kΩ
  7. 2 rezystory 220R.
  8. Super jasna niebieska dioda LED.
  9. brzęczyk piezo
  10. 16*2 wyświetlacz LCD

Krok 1: Połącz wszystko razem

Połączenie wszystkiego razem
Połączenie wszystkiego razem

Teraz musisz wszystko okablować

Krok 2: Jak grać:

  1. Włącz arduino.
  2. Na wyświetlaczu LCD powinien pojawić się komunikat: „gra zaczyna się” i odliczanie.
  3. Naciśnij jeden z przycisków, aby skoczyć, a drugi, aby strzelać.
  4. każdy blok, który przeskoczysz, zdobył jeden punkt, a każdy *, który złapiesz, daje 5 punktów.
  5. Gdy zdobędziesz 50 punktów lub więcej, wygrałeś

Krok 3: Kodeks

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

#włączać

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

const int przyciskPin1=1; const int przyciskPin2=6; const int brzęczyk=7; unsigned long pts=0; //ustaw stany przycisków bool buttonState1=0; bool Stan2=0; //losowa liczba pozycji przeszkód int randomNums[6]; //losowa liczba dla liczby przeszkód int randomNum=0; //losowa liczba dla pozycji punktów int randomNums1[3]; //losowa liczba dla liczby punktów int randomNum1=0; //czas opóźnienia startu, który stopniowo maleje unsigned int myDelay=500; //ustawił tę wartość logiczną, aby sprawdzić, czy przycisk 2 jest wciśnięty, ponieważ jeśli zostanie wciśnięty raz w pierwszej pętli for, nie chcę, aby przeszkody nie były zapisywane do końca bool temp=0; //ta zmienna przechowuje pozycje wojownika podczas strzelania. może być 16 pozycji, ponieważ wojownik ma 16 pozycji. temp I[16]; //używam tej wartości logicznej, aby sprawdzić, czy punkt jest przechwycony bool temp1=0;

//użyj tej zmiennej do przechowywania pozycji przechwyconego punktu. musi być i tablica, aby przechowywać pozycje wszystkich punktów w jednej iteracji pierwszej pętli for. gdyby przechowywał tylko jedną pozycję, „stary” punkt powróciłby w nowej iteracji

wewn tempI1[3]; //użyj tej zmiennej, aby uzyskać liczbę strzałów wojownika, która jest jednocześnie długością tablicy tempI int button2IsPressed=0; LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

pusta konfiguracja () {

// ustaw liczbę kolumn i wierszy LCD: lcd.begin(16, 2); // ustaw tryb pinMode(buttonPin1, INPUT); pinMode(buttonPin2, INPUT); pinMode(brzęczyk, WYJŚCIE); lcd.setCursor(4, 0); lcd.print("GRA"); lcd.setCursor(2, 1); lcd.print("ZACZYNA SIĘ W "); lcd.print("5"); opóźnienie (1000); lcd.setCursor(12, 1); lcd.print("4"); opóźnienie (1000); lcd.setCursor(12, 1); lcd.print("3"); opóźnienie (1000); lcd.setCursor(12, 1); lcd.print("2"); opóźnienie (1000); lcd.setCursor(12, 1); lcd.print("1"); opóźnienie (1000); lcd.clear();

}

pusta pętla () {

tutaj:

randomNum=losowo(5);

for(int i=0; i9 && pts19 && pts29 && pts=50){ pts=0; mojeOpóźnienie=500; lcd.clear(); lcd.setCursor(5, 0); lcd.print("ZWYCIĘSTWO"); ton (brzęczyk, 262); opóźnienie(200); ton (brzęczyk, 330); opóźnienie(200); ton (brzęczyk, 392); opóźnienie (100); ton (brzęczyk, 330); opóźnienie (100); ton (brzęczyk, 392); opóźnienie (100); ton (brzęczyk, 523); opóźnienie(200); brak dźwięku (brzęczyk); opóźnienie(3000); lcd.clear(); idź tutaj; } else lcd.setCursor(15, 0); lcd.print(pts); buttonState1=digitalRead(buttonPin1); buttonState2=digitalRead(buttonPin2); //ustawianie przeszkód jeśli wojownik nie strzelał lub strzelał ale też skakał if(!temp){ for(int j=0; jrandomNums[j]){ lcd.setCursor(randomNums[j], 1); lcd.print("#"); }

}

}

//ustawianie pkt

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

}

Zalecana: