نحن نجمع بين متحكم "الأطفال" وألعاب الطاولة

أعطوني مؤخرا مايكرو: بت. التي لتلاميذ المدارس ، من بي بي سي والآن شعبية متزايدة (خاصة بعد أن وعد الصينيون بجعل استنساخه أرخص مرتين). أنا شخصياً أعرف أن اردوينو ، كان أحد الرواد في بلدنا الذي أظهر كيفية عبور اردوينو مع سكراتش وهذا وشاح ... في البداية لم أكن مهتمًا. ولكن بعد ذلك بقليل ولدت الفكرة: ولكن ليس لعبورها مع ألعاب الطاولة؟

أنا نفسي مؤلف كتاب "سطح المكتب" ، معجب بهم. ووجود بيئة برمجة ودية إلى حد ما (في البداية يتم برمجة اللوحة في Python و Java ، ولكن هناك بيئة كتلة مع جهاز محاكاة) جعلني أحاول تنفيذ هذه الفكرة.

يجب أن أحذرك على الفور - لست مبرمجًا! وهذا أمر جيد ، لأنه حتى طالب المدرسة الابتدائية وأي منكم يمكنه تكرار بحثي. اجعل نفسك جهازًا "مخصصًا" يساعد على تبسيط الحياة مع ألعاب الطاولة.



جاء أول من طرح فكرة تنفيذ الزهر D6 العادي (والتي تتراوح من 1 إلى 6). لم يقل قال من القيام به. بإدارة بيئة makecode.microbit.org ، رسمت برنامجًا بسيطًا ، عندما تضغط على الزر "أ" ، ينشئ رقمًا عشوائيًا من 1 إلى 6 ويعرضه على مصفوفة LED بالجهاز.

"لتزيين" الكود ، أضفت بضع صور من "جيل" المكعب وفويلا. استعداد مكعب إلكتروني بسيط.



وإذا كنت بحاجة إلى مكعب D12؟ نحن توليد عدد عشوائي يصل إلى 12. و D20؟ حتى 20 بالطبع. لكن المشكلة تكمن في وضع رقم واحد فقط على "الشاشة" ويتم تمرير رقمين ، ولكن مرة واحدة فقط بواسطة الأمر لإخراجها إلى المصفوفة. ما يجب القيام به اضطررت إلى إضافة متغير لتخزين النتيجة ، وعرض دورات وتكرار قيمة رمي العظام الأخير عن طريق الضغط على زر B.



يمكن أن يؤدي استبدال حدث الضغط على الزر بقراءة "الاهتزاز" (Micro: Bit يحتوي على مقياس تسارع) إلى جعل عملية "الإلقاء" أكثر واقعية.

وإذا كنت بحاجة إلى لفة اثنين من الزهر؟ أصبحت المهمة أكثر إثارة للاهتمام. بالإضافة إلى أنني أردت أن تجعل النرد كما ينبغي مع النقاط. لحسن الحظ ، تتكون المصفوفة (بحجم 5 × 5) من مصابيح LED بعيدة بما فيه الكفاية ، وإذا كنت تضيئها حتى بالقرب منك ، فيمكنك التمييز بسهولة بين "الوحدة" وحيث "ستة".

الآن كنت أصنع "النرد" لألعاب مثل Monopoly و Colonializers (حيث يتم إلقاء نردين) أو Machi Koro (حيث يجب رمي نرد واحد أو اثنين D6 أثناء اللعبة). لكن المشكلة نشأت في عرض هذه الرميات.

كما كتبت أعلاه ، المصفوفة في Micro: Bit 5x5. لعرض مكعب سداسي عشرية منتظم ، نحتاج إلى مصابيح LED 3x3.



يمكن أيضًا عرض مكعبين في المنتصف واحداً تلو الآخر ، لكن بصريًا ، يكون من السيء قراءتهما. لذلك ، قررت عرض مكعب واحد مع إزاحة إلى الزاوية اليسرى العليا ، والثاني إلى أسفل اليمين في حلقة لا نهائية حتى يتم تنفيذ بعض الإجراءات الأخرى.

بعد أن اكتشفت أن الأمر بينما لا يعمل بشكل جيد مع أحداث الضغط على زر القراءة وكتابة نظام عكاز من المتغيرات والتحقق منها ، حصلت على النتيجة التي أحتاج إليها. بالضغط على الزر A ، تم إنشاء مكعب واحد ، على B - اثنين من الزهر ، أوقف A + B الشاشة وجعل النظام في حالته الأولية.

قررت أيضًا "وضع" مولد الأرقام العشوائية باستخدام صيغة النرد البسيطة = الجولة (عشوائي (من 50 إلى 649) / 100). بدأت "مكعبات" تسقط أكثر واقعية قليلا.

تحولت "رمز الوحش" الأخير إلى مثل هذا (رمز لإخراج الرسومات من مكعبات مباشرة لا يصلح ، لأنه يذهب إلى أسفل).



ويمكن الاطلاع على نتيجة العمل في الفيديو:


بالفعل شيء مثير للاهتمام. علاوة على ذلك ، بسبب التحول في الزوايا ، يمكن عرض ما يصل إلى 5 مكعبات بالتتابع ويمكن أن تكون متتابعة بشكل كافٍ.

هل يمكنني فعل شيء آخر؟ في لعبة لوحتي الجديدة "Parobot Card League" ، سيتم استخدام النرد لأمرين: تحديد المكافأة للاعبين في الجولة الحالية وتحديد الفريق للروبوتات الآلية في ساحة اللعب. لذلك ، تقرر تنفيذ ما يلي:

  1. عداد دائري (هناك 8 في المجموع)
  2. تحديد المكافأة في الجولة الحالية (الزر أ)
  3. تعريف أمر بوت (الزر B)
  4. تقدم إلى الجولة التالية (الضغط المتكرر على الزر A)

قمت بتطبيق مكعبات "مخصصة" ، وعرضت على الفور رمز بطاقة المكافأة التي سقطت (أو N ، إذا لم تكن كذلك) والرسم التخطيطي لفرق بوت - سهم الحركة (للأمام ، للخلف ، يستدير لليسار واليمين ، وضرب والدفاع).



كيف يعمل البرنامج مرئيًا على الفيديو:


نظرًا لأن التنزيل على Micro: Bit بسيط (فقط قم بتوصيله عبر micro-USB بجهاز كمبيوتر ونقل ملف hex-program إلى جذر القرص الذي يظهر) ، قمت بإنشاء صفحة على موقعي حيث أريد وضع "إعدادات مسبقة" جاهزة للعديد من ألعاب الطاولة: www.simplerobot.org/elektronika

هناك يمكنك العثور على كل من ملفات الست عشري الجاهزة ورابط إلى أكواد المصدر. استخدام على الصحة. يمكنك شراء لوحة بنفس Amperka أو "من الصينيين" على علي.

ماذا تريد أن تفعل؟ أولاً ، "قم بفك" اللوحة عن الطاقة الخارجية عن طريق شد الدرع للبطاريات.



ثانياً ، حاول التنفيذ على أساس لوحة "التشغيل التلقائي" للعب بمفردها مع خصم الكمبيوتر واستخدام البوصلة المدمجة ومقياس التسارع.

إذا أنشأت برنامجًا مخصصًا خاصًا بلوحة ألعاب وأرسلته إلي ، فسأقوم بكل سرور بنشره على الموقع. أو يمكنني القيام بذلك بناءً على طلبك (وفقًا لأفضل قدراتي وقيود المنتدى).

Source: https://habr.com/ru/post/ar479794/


All Articles