نشاط كرة ماجيك 8

Make a fun question-based game in MakeCode!

  • Get started
  • MakeCode
  • Random
  • Variables
  • Games
Print lesson
  • الأعمار 8+
  • 30 دقائق
  • MakeCode Editor

مقدمة

هذا المشروع يعلم المستخدم كيفية إنشاء لعبة كرة ماجيك 8. اللعبة النهائية تسمح لك أن تسأل المايكروبت سؤال وسوف يجيب بإجابة عشوائية!

دليل المعلم:

افتح افتح teacher resources

نشاط

7 خطوات

الخطوة الأولى

هذا البرنامج يعيد إنشاء الكرة "ماجيك 8". يطلب من المستخدم طرح سؤال وسيعطي استجابة عشوائية.

تتمثل الخطوة الأولى في برمجة الجهاز لإخبار المستخدم بطرح سؤال. يتم عرض سلسلة نصية على الشاشة ويتم تحقيق ذلك باستخدام بلوك "show string " الموجودة في الخيار (أساسي - Basic) لقائمة البلوك block.

Drag the show string block

اسحب كتلة "إظهار السلسلة" إلى مساحة العمل ثم ضعها داخل كتلة "البداية " . انقر على النص "hello! " وغيّره إلى "ask question!"


basic.showString("Ask a question!")
          

المرحلة التالية هي عرض الرقم "8" على الشاشة لتمثيل شعار الكرة ماجيك 8. يتم تكرار الخطوات مرة أخرى.

Drag the show number block

basic.showString("Ask a question!")
basic.showNumber(8)
          

الخطوة الثانية

الآن عرض البرنامج "ask a question " و "8" ، يحتاج المستخدم للحصول على استجابة من المايكروبت. يتم تنفيذ ذلك باستخدام إشارة معينة وهي "اهتزاز" شريحة المايكروبت كمدخل. في قائمة البلوك block، اختر خيار "input" وحدد بلوك block الاهتزاز "on shake" واسحبها إلى مساحة العمل.

Drag the on shake block

بمجرد وصول البلوك إلى مساحة العمل ، يمكن تغيير block بلوك "on" إلى عدد من الإشارات ، مثل إمالة لليسار أو لليمين. بالنسبة لهذا المشروع ، يتم تحديد إشارة الاهتزاز.

Click the arrow to change the gesture

input.onGesture(Gesture.Shake, function () {
  
})
          

نحتاج أولاً إلى تحديث شاشة عرض شريحة المايكروبت Microbit باستخدام بلوك "Clear". سيؤدي هذا إلى مسح أي نمط يتم عرضه حاليًا على المايكروبت سواء كان ذلك الجملة "ask a question " من الرقم "8". ستجد بلوك "Clear screen " في الخيار "basic" ضمن خيار "More" من قائمة البلوك block. اسحب البلوك إلى مساحة العمل ثم ضعها داخل بلوك "on shake".

Drag the clear screen block

input.onGesture(Gesture.Shake, function () {
    basic.clearScreen()
})
          

الخطوة الثالثة

والآن تمت برمجة شريحة المايكروبت micro: bit حتى تستجيب لإشارة الاهتزاز ، والخطوة التالية هي إنشاء متغير يتم تخزين رقم عشوائي فيه. من قائمة البلوك ، حدد علامة التبويب "متغيرات" “Variables” وانقر فوق "إنشاء متغير" “Make a Variable”.

Click 'Make a variable' in the variables tab

سيطلب منك مربع حوار منبثق تسمية المتغير الخاص بك. في هذا المثال قم بتسميته " random ".

Click 'ok' to rename your variable

عندما يتم اهتزاز المايكروبت نود أن يتم إنشاء الرقم العشوائي وتخزينه في المتغير "random ". لتحقيق ذلك ، قم بإضافة "Set item to" "تعيين العنصر إلى" في مساحة العمل.

Drag the 'set item to' block into the workspace

ضع بلوك "تعيين العنصر""Set item to " أسفل بلوك "مسح الشاشة " "Clear screen " وانقر على السهم لأسفل بجوار كلمة "عنصر" "item ". سيسمح لنا هذا بتحديد المتغير المسمى "random " والذي سيتم ضبطه حاليًا على "0" عندما يتم اهتزاز شريحة المايكروبت.


let Random = 0
input.onGesture(Gesture.Shake, function () {
    basic.clearScreen()
    Random = 0
})
          

الخطوة الرابعة

Now that the variable is set to “0” when the micro:bit is shaken, we now need to assign a random number to it. From the block menu select the “Math” option and select “pick random 0 to 10”

Drag a 'pick random' block from the 'Math' section

Drag the “pick random” block onto the workspace and join to the “set random” block. A random number between 1 and 3 will give us the 3 options needed, so change the number “0” to “1” and “10” to “3”.


let Random = 0
input.onGesture(Gesture.Shake, function () {
    basic.clearScreen()
    Random = Math.randomRange(1, 3)
})
          

الخطوة الخامسة

الخطوة التالية هي إضافة عملية تحديد اختيار باستخدام عبارة IF الشرطية الموجودة داخل بلوك "Logic" داخل قائمة البلوك block.

Drag an 'if' block to the workspace

اسحب بلوك "IF" إلى منطقة العمل و اربطها لتتبع بلوك "عشوائي". لذا إذا تم هز المايكروبت يتم مسح الشاشة ، ثم يتم إنشاء رقم عشوائي وتخزينه في المتغير "random " والآن نحتاج إلى ضبط ما سيحدث لكل من الثلاث الأرقام العشوائية المختلفة(0)(1)(2).


let Random = 0
input.onGesture(Gesture.Shake, function () {
    basic.clearScreen()
    Random = Math.randomRange(1, 3)
    if (true) {

    } else {

    }
})
          

As there are more than 2 conditions within this selection another selection statement is required, an “else if”. Click '+' on the if block to add extra else and else if statements.


let Random = 0
input.onGesture(Gesture.Shake, function () {
    basic.clearScreen()
    Random = Math.randomRange(1, 3)
    if (true) {
      
    } else if (false) {
      
    } else {
      
    }
})
          

بعد ذلك ، نحتاج إلى ملء عبارة IF للسماح بالتحديد. من خيار "المنطق logic" في قائمة البلوك ، حدد كتلة "يساوي".

Drag an equals block to the workspace

بمجرد التحديد ، اسحب بلوك "يساوي" إلى بلوك عبارة "IF".


let Random = 0
input.onGesture(Gesture.Shake, function () {
    basic.clearScreen()
    Random = Math.randomRange(1, 3)
    if (0 == 0) {
      
    } else if (false) {
      
    } else {
      
    }
})
          

الخطوة السادسة

ولضمان صحة اعتماد المايكروبت على جملة IF في تحديد الرقم العشوائي ، يجب التحقق من القيمة المخزنة في المتغير "random ". The “Random” variable can be found from the 'Variables' option in the block menu.

Drag the 'random' variable from the variables tab

يتم وضع بلوك المتغير "random " في بلوك "يساوي" لاختبار جملة IF الشرطية . If the “Random” variable is equal to "3" the first option is selected otherwise the second or third option is chosen.


let Random = 0
input.onGesture(Gesture.Shake, function () {
    basic.clearScreen()
    Random = Math.randomRange(1, 3)
    if (Random == 3) {
      
    } else if (false) {
      
    } else {
      
    }
})
          

So the micro:bit can switch between three options, click '+' in the 'if' block so that the block has 1 'if', 1 'else if', and 1 'else' statement. Your code should look like this:


let Random = 0
input.onGesture(Gesture.Shake, function () {
    basic.clearScreen()
    Random = Math.randomRange(1, 3)
    if (Random == 3) {
      
    } else if (Random == 2) {
      
    } else {
      
    }
})
          

الخطوة السابعة

الآن المايكروبت لديه 3 خيارات ممكنة بناء على العدد العشوائي المتولد ، والخطوة التالية هي إعطاء المستخدم إجابة لسؤاله. يتم تحقيق ذلك عن طريق تحديد بلوك "إظهار السلسلة" من الخيار أساسي basic لقائمة البلوك وسحبها إلى مساحة العمل.

Drag a 'show string' block to the workspace

بالنسبة لكل جزء من أجزاء الجملة الشرطية "إذا" في بلوك "إذا" ، يلزم وجود بلوك "إظهار السلسلة". اسحب 3 من القائمة أو انقر بزر الماوس الأيمن فوق البلوك "إظهار السلسلة " مرة واحدة في مساحة العمل لتكرارها. يجب تعديل السلاسل النصية إلى "نعم" و "لا" و "لا أعرف".


let Random = 0
input.onGesture(Gesture.Shake, function () {
    basic.clearScreen()
    Random = Math.randomRange(1, 3)
    if (Random == 3) {
        basic.showString("YES")
    } else if (Random == 2) {
        basic.showString("NO")
    } else {
        basic.showString("I DON'T KNOW")
    }
})
          

بمجرد أن يتم إنشاء الإجابة ، الجزء الأخير من البرنامج هو برمجة المايكروبت micro: bit لعرض الرقم "8" مرة أخرى. هناك حاجة إلى بلوك "عرض السلسلة" مرة أخرى ووضعها بعد العبارة "إذا".


let Random = 0
input.onGesture(Gesture.Shake, function () {
    basic.clearScreen()
    Random = Math.randomRange(1, 3)
    if (Random == 3) {
        basic.showString("YES")
    } else if (Random == 2) {
        basic.showString("NO")
    } else {
        basic.showString("I DON'T KNOW")
    }
    basic.showNumber(8)
})
          

قم بحفظ البرنامج و تحميله إلى المايكروبت.


let Random = 0
input.onGesture(Gesture.Shake, function () {
    basic.clearScreen()
    Random = Math.randomRange(1, 3)
    if (Random == 3) {
        basic.showString("YES")
    } else if (Random == 2) {
        basic.showString("NO")
    } else {
        basic.showString("I DON'T KNOW")
    }
    basic.showNumber(8)
})
basic.showString("Ask a question!")
basic.showNumber(8)
          

التحديات:

جرب اضافة الخصائص التالية:

  • إضافة إجابات أخرى.
  • أضف رسمًا تفكيريًا بعد إشارة الاهتزاز.

المزيد من المعلومات

يستخدم نشاط وميض القلب "Flashing Heart" مصابيح LED لعرض صورة على مايكروبت آخر micro: bit باستخدام بلوك block "الراديو".

Selecting this opens external content from our support system, which adheres to their privacy policy.