Mundarija:

"Ninja dollari" Arduino uchun o'yin: 3 qadam
"Ninja dollari" Arduino uchun o'yin: 3 qadam

Video: "Ninja dollari" Arduino uchun o'yin: 3 qadam

Video:
Video: Leslie Kean on David Grusch (UFO Whistleblower): Non-Human Intelligence, Recovered UFOs, UAP, & more 2024, Iyul
Anonim
Rasm
Rasm

"Arduino.it" ning yana bir ajoyib o'yini - bu oxirgi nashr qilganimdan ko'ra ancha rivojlangan. Nima uchun u boshqasidan ko'ra murakkabroq? Bu murakkabroq, chunki u sakrab, otib, ovozli yorug'lik va yangi nuqta bilan kurashish usuliga ega bo'lishi mumkin.

Ta'minotlar

  1. Arduino.
  2. Non paneli
  3. o'tish simlari
  4. Qizil LED
  5. 2 ta tugma
  6. 2 10k ohmli rezistorlar
  7. 2 220R qarshilik.
  8. Super yorqin ko'k LED.
  9. piezo signal
  10. 16*2 LCD displey

1 -qadam: Hammasini bir -biriga ulash

Hamma narsani bir -biriga ulash
Hamma narsani bir -biriga ulash

Endi siz hamma narsani sim bilan ulashingiz kerak

2 -qadam: qanday o'ynash kerak:

  1. Arduino -ni yoqing.
  2. LCD displeyda: "O'yin boshlanadi" va teskari sanoq bosilishi kerak.
  3. O'tish uchun tugmachalardan birini, otish uchun esa boshqasini bosing.
  4. Siz sakragan har bir blok siz bitta ochkoni qo'lga kiritgan bo'lsangiz, har bir * ball sizga 5 ball beradi.
  5. Agar sizda 50 yoki undan yuqori ball bo'lsa, siz g'alaba qozonasiz

3 -qadam: Kod

// vaqt o'tishi bilan, tezlik va tezlikni oshiradi.

#qo'shing

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

const int buttonPin1 = 1; const int buttonPin2 = 6; const int buzzer = 7; belgisiz uzun pts = 0; // tugmachalarni o'rnatish bool buttonState1 = 0; bool tugmasiState2 = 0; // int randomNums [6] to'siqlarning joylashuvi uchun tasodifiy son; // to'siqlar soni uchun tasodifiy son int randomNum = 0; // pts int randomNums1 pozitsiyasi uchun tasodifiy son [3]; // pts soni uchun tasodifiy son int randomNum1 = 0; // boshlanishining kechikish vaqti, bu asta -sekin kamayadi int myDelay = 500; // tugma 2 bosilganligini tekshirish uchun bu booleanni yaratdi, chunki agar u loop uchun birinchi marta bosilsa, men oxirigacha to'siqlar yozilmasligini xohlayman bool temp = 0; // bu o'zgaruvchi otish paytida jangchining pozitsiyalarini saqlaydi. 16 pozitsiya bo'lishi mumkin, chunki jangchi 16 pozitsiyaga ega. int tempI [16]; // nuqta tutilganligini tekshirish uchun bu booleanni ishlataman bool temp1 = 0;

// tutilgan nuqta o'rnini saqlash uchun bu o'zgaruvchidan foydalaning. hamma nuqtalarning o'rnini loop uchun birinchisining bitta iteratsiyasida saqlash uchun bo'lishi kerak. agar u faqat bitta pozitsiyani saqlagan bo'lsa, "eski" nuqta yangi iteratsiyaga qaytadi

int tempI1 [3]; // bu o'zgaruvchidan jangchining bir qancha zarbalarini olish uchun foydalaning, bu ham tempI int tugma qatorining uzunligi 2IsPressed = 0; LiquidCrystal lcd (rs, en, d4, d5, d6, d7);

bo'sh o'rnatish () {

// LCD -ning ustunlar va qatorlar sonini o'rnating: lcd.begin (16, 2); // pinMode tugmachalari rejimini o'rnatish (buttonPin1, INPUT); pinMod (tugmaPin2, Kirish); pinMode (signal, OUTPUT); lcd.setCursor (4, 0); lcd.print ("O'YIN"); lcd.setCursor (2, 1); lcd.print ("IN IN STARTS"); lcd.print ("5"); kechikish (1000); lcd.setCursor (12, 1); lcd.print ("4"); kechikish (1000); lcd.setCursor (12, 1); lcd.print ("3"); kechikish (1000); lcd.setCursor (12, 1); lcd.print ("2"); kechikish (1000); lcd.setCursor (12, 1); lcd.print ("1"); kechikish (1000); lcd.clear ();

}

void loop () {

Bu yerga:

randomNum = tasodifiy (5);

uchun (int i = 0; i9 && pts19 && pts29 && pts = 50) {pts = 0; myDelay = 500; lcd.clear (); lcd.setCursor (5, 0); lcd.print ("G'ALABA"); ohang (ovozli signal, 262); kechikish (200); ohang (buzzer, 330); kechikish (200); ohang (buzzer, 392); kechikish (100); ohang (buzzer, 330); kechikish (100); ohang (buzzer, 392); kechikish (100); ohang (signal, 523); kechikish (200); noTone (ovozli signal); kechikish (3000); lcd.clear (); mana bu yerga; } else lcd.setCursor (15, 0); lcd.print (ballar); buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); // agar jangchi o'q uzmagan bo'lsa yoki u o'q uzmagan bo'lsa, to'siqlarni o'rnatish, lekin u ham sakragan bo'lsa (! temp) {for (int j = 0; jrandomNums [j]) {lcd.setCursor (randomNums [j], 1); lcd.print ("#"); }

}

}

// ballarni sozlash

agar (! temp1) {uchun (int j = 0; j

}

Tavsiya: