جدول المحتويات:

"Ninja Dollar" لعبة Arduino: 3 خطوات
"Ninja Dollar" لعبة Arduino: 3 خطوات

فيديو: "Ninja Dollar" لعبة Arduino: 3 خطوات

فيديو:
فيديو: EASY AND COOL DIY HALLOWEEN DECOR IDEAS- DIY Halloween Ideasفكرة رائعة وديكور الهالوين المخيف 2024, يوليو
Anonim
صورة
صورة

لعبة فيديو أخرى لـ arduino.it إنها لعبة رائعة أكثر تقدمًا من آخر لعبة قمت بنشرها. لماذا هي أكثر تعقيدًا من غيرها؟ إنها أكثر تعقيدًا لأنها يمكن أن تقفز وتلتقط ولها ضوء صوت وطريقة متابعة نقاط جديدة.

اللوازم

  1. اردوينو.
  2. اللوح
  3. أسلاك العبور
  4. الصمام الأحمر
  5. 2 أزرار انضغاطية
  6. 2 مقاومات 10 كيلو أوم
  7. 2 مقاومات 220R.
  8. LED أزرق فائق السطوع.
  9. الجرس بيزو
  10. شاشة عرض LCD مقاس 16 * 2

الخطوة 1: توصيل كل شيء معًا

توصيل كل شيء معًا
توصيل كل شيء معًا

الآن أنت بحاجة إلى توصيل كل شيء

الخطوة الثانية: طريقة اللعب:

  1. قم بتشغيل اردوينو.
  2. يجب أن تطبع شاشة LCD: "تبدأ اللعبة" وعدًا تنازليًا.
  3. اضغط على أحد الأزرار للقفز وآخر للتصوير.
  4. فكل كتلة تقفزها تفوز بنقطة واحدة وكل * تحصل عليه يمنحك 5 نقاط.
  5. عندما يكون لديك 50 نقطة أو أكثر فزت

الخطوة 3: الكود

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

#يشمل

const int rs = 12 ، en = 11 ، d4 = 5 ، d5 = 4 ، d6 = 3 ، d7 = 2 ؛

const int buttonPin1 = 1 ؛ const int buttonPin2 = 6 ؛ جرس كثافة العمليات = 7 ؛ نقاط طويلة بدون توقيع = 0 ؛ // set buttonstates bool buttonState1 = 0 ؛ زر منطقي الحالة 2 = 0 ؛ // رقم عشوائي لموقع العوائق int randomNums [6] ؛ // عدد عشوائي لعدد العوائق int randomNum = 0 ؛ // رقم عشوائي لموضع النقاط int randomNums1 [3] ؛ // رقم عشوائي لعدد النقاط int randomNum1 = 0 ؛ // وقت تأخير البدء ، والذي ينخفض تدريجيًا بدون توقيع int myDelay = 500 ؛ // جعل هذا منطقيًا للتحقق مما إذا كان الزر 2 مضغوطًا لأنه إذا تم الضغط عليه مرة واحدة في الحلقة الأولى ، فأنا أريد عدم كتابة العوائق حتى نهايتها درجة الحرارة المنطقية = 0 ؛ // يخزن هذا المتغير مواقع المحارب أثناء إطلاق النار. يمكن أن يكون هناك 16 موقعًا لأن المحارب لديه 16 موقعًا. int tempI [16] ؛ // أنا استخدم هذا المنطقي للتحقق مما إذا كانت النقطة تم التقاطها bool temp1 = 0 ؛

// استخدم هذا المتغير لتخزين موضع النقطة الملتقطة. يجب أن يكون مصفوفة لتخزين موضع جميع النقاط في تكرار واحد لحلقة for الأولى. إذا تم تخزين موضع واحد فقط ، فإن النقطة "القديمة" ستعود في التكرار الجديد

int tempI1 [3] ؛ // استخدم هذا المتغير للحصول على عدد من لقطات المحارب ، وهو أيضًا طول مصفوفة tempI int button2IsPressed = 0 ؛ LiquidCrystal LCD (rs، en، d4، d5، d6، d7) ؛

الإعداد باطل() {

// قم بإعداد عدد الأعمدة والصفوف في شاشة LCD: lcd.begin (16 ، 2) ؛ // وضع pinMode لوضع الزر (buttonPin1 ، INPUT) ؛ pinMode (buttonPin2 ، الإدخال) ؛ pinMode (الجرس ، الإخراج) ؛ lcd.setCursor (4 ، 0) ؛ lcd.print ("اللعبة") ؛ lcd.setCursor (2 ، 1) ؛ lcd.print ("يبدأ في") ؛ lcd.print ("5") ؛ تأخير (1000) ؛ lcd.setCursor (12 ، 1) ؛ lcd.print ("4") ؛ تأخير (1000) ؛ lcd.setCursor (12 ، 1) ؛ lcd.print ("3") ؛ تأخير (1000) ؛ lcd.setCursor (12 ، 1) ؛ lcd.print ("2") ؛ تأخير (1000) ؛ lcd.setCursor (12 ، 1) ؛ lcd.print ("1") ؛ تأخير (1000) ؛ lcd.clear () ؛

}

حلقة فارغة() {

هنا:

randomNum = random (5) ؛

لـ (int i = 0؛ i9 && pts19 && pts29 && pts = 50) {pts = 0؛ myDelay = 500 ؛ lcd.clear () ؛ lcd.setCursor (5 ، 0) ؛ lcd.print ("النصر") ؛ نغمة (الجرس ، 262) ؛ تأخير (200) ؛ نغمة (الجرس ، 330) ؛ تأخير (200) ؛ نغمة (الجرس ، 392) ؛ تأخير (100) ؛ نغمة (الجرس ، 330) ؛ تأخير (100) ؛ نغمة (الجرس ، 392) ؛ تأخير (100) ؛ نغمة (الجرس ، 523) ؛ تأخير (200) ؛ noTone (الجرس) ؛ تأخير (3000) ؛ lcd.clear () ؛ اذهب هنا } else lcd.setCursor (15، 0)؛ lcd.print (نقاط) ؛ buttonState1 = digitalRead (buttonPin1) ، buttonState2 = digitalRead (buttonPin2) ، // وضع العقبات إذا لم يطلق المحارب النار أو أطلق النار لكنه قفز أيضًا إذا (! temp) {for (int j = 0؛ jrandomNums [j]) {lcd.setCursor (randomNums [j]، 1)؛ lcd.print ("#") ؛ }

}

}

// وضع النقاط

إذا (! temp1) {for (int j = 0؛ j

}

موصى به: