Skip to content

نشاط

نقل مجموعة البط

متوسط | MakeCode, Python | الراديو, مقياس التسارع | الاتصال, القيم المنطقية, موجات الراديو

الخطوة 1: اصنعها

ماذا يعني؟

لعبة مجموعة من "البطاطا الساخنة" باستخدام الراديو - أو البطة الساخنة!

عدد 3 من micro:bit، واحد يتم هزه ويظهر بطة على شاشة LED

كيف يعمل ؟

  • مثل لعبة نقل البطة, يستخدم هذا الراديو لإرسال "بطة" عبر الهواء بين أجهزة micro:bit. هذه اللعبة تعمل فقط مع لاعبين اثنين لأنها ترسل نفس الرسالة إلى الجميع ــ وسرعان ما تجد أن كل شخص تقريبًا لديه بطة، ويمكن لأي شخص أن يرمي البطة.
  • إذا كان لديك أكثر من لاعبين، كل micro:bit بحاجة إلى طريقة لاختيار اللاعب الذي سيحصل على البطة بحيث يكون لكل برنامج لاعب رقم مُعرف فريد، بدءًا من 1.
  • نقوم بتخزين هذا في متغير متغير يسمى مُعرف، وسوف تحتاج إلى تغيير هذا إلى 2 ، 3 ، 4 إلخ لكل لاعب قبل وميض البرنامج على micro:bit الخاص بكل منهم.
  • اضبط متغيرات اللاعبين إلى عدد الأشخاص للتأكد من أن كل شخص لديه فرصة للحصول على البطة. البرنامج يظهر رقم معرف اللاعب على شاشة LED في البداية حتى تعرف من يحصل على أي رقم.
  • للتأكد من أن اللاعب الذي يملك البطة هو فقط الذي يستطيع أن يمسكها، البرنامج يرسل رسالة فقط عندما تهز إذا كان لديك بطة. إنه يتتبع هذا باستخدام متغير قيمة منطقية يسمى hasDuck. متغيرات القيم المنطقية يمكن أن تحتوي فقط على قيمتين: صح أو خطأ. في البداية فقط اللاعب 1 لديه البطة، لا أحد آخر يمكنه رميها.
  • عندما يهز اللاعب 1 جهاز micro:bit، يولد البرنامج رقما عشوائيًا بين 1 وعدد اللاعبين. إذا كان الرقم العشوائي لا يساوي رقم مُعرفها الخاص بها، يقوم بإرسال رقم المُعرف الجديد عن طريق الراديو، ويمسح شاشتها ويقوم بتعيين متغير hasDuck إلى خطأ.
  • إذا كان الرقم العشوائي يساوي رقم المُعرف الخاص بها، سوف تحتاج إلى الرمي مرة أخرى، ولكن هذا أفضل من البطة التي يتم إرسالها لنفسها - وتفقد في الفضاء الواسع!
  • إذا استلم micro:bit رقمًا، فإنه يتحقق لمعرفة ما إذا كان يساوي (يتطابق) رقم مُعرفك. إذا كان الأمر كذلك، تهانينا، لديك البطة الآن! يظهر بطة على شاشة LED الخاصة بك، ويتم تعيين متغير HasDuck إلى صح، بمعنى أنه يمكنك الآن ربط البطة بشخص آخر.
  • يُرجى رمي البطة بشكل مسؤول: تأكد من عدم إسقاط micro:bit أو ضرب صديق لك أثناء استمتاعك بهذه اللعبة.

ما تحتاجه

  • 3 أو أكثر من micro:bit
  • محرر MakeCode أو Python
  • حزم بطاريات (اختياري).
  • مجموعة من الناس للعب معهم

الخطوة 2: برمجها

1from microbit import *
2import radio
3import random
4
5radio.config(group=42)
6players = 3
7ID = 3
8display.show(ID)
9if ID == 1:
10    hasDuck = True
11else:
12    hasDuck = False
13radio.on()
14
15while True:
16    message = radio.receive()
17    if accelerometer.was_gesture('shake'):
18        if hasDuck:
19            sendTo = random.randint(1, players)
20            if sendTo != ID:
21                display.clear()
22                radio.send(str(sendTo))
23    if message:
24        if message == str(ID):
25            hasDuck = True
26            display.show(Image.DUCK)
27        else:
28            hasDuck = False
29    

الخطوة 3: حسّنها

  • تغيير البرنامج لإرسال أشياء أخرى بدلًا من البط
  • في الوقت الحالي، إذا اختار رقمًا عشوائيًا مماثلًا لرقم مُعرفك، فيجب عليك أن تهز مرة أخرى. قم بتعديل البرنامج حتى لا يحدث هذا أبدًا. قد تكون هناك أكثر من طريقة واحدة للقيام بذلك.
  • اللاعب 1 دائمًا لديه البطة في بداية اللعبة. هل يمكنك تحسين البرنامج بحيث يتم اختيار اللاعب الأول مع البطة عشوائيًا؟ كيف يمكنك التواصل مع كل لاعب micro:bit؟