جدول المحتويات:
- الخطوة 1: نظرة عامة
- الخطوة 2: المواد
- الخطوة الثالثة: صنع اللعبة
- الخطوة 4: التعديلات المستقبلية
- الخطوة 5: الخاتمة
فيديو: كاسحة ألغام: 5 خطوات (بالصور)
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:41
بالنسبة لمشروعنا النهائي CPE 133 ، قررت أنا و Chase إنشاء لعبة "كاسحة ألغام" تستخدم الزر وتبديل المدخلات من لوحة Basys-3 بالإضافة إلى كود VHDL. يمكن أن يكون الاسم الأفضل للعبة هو "الروليت الروسي" ، لكننا أردنا استخدام اسم أكثر ملائمة للعائلة. تتضمن اللعبة أن يقوم المستخدم بالضغط على الزر الأوسط على لوحة Basys لتعيين أحد المفاتيح الستة عشر بشكل عشوائي ليكون "نشطًا" مع قنبلة. ثم يتناوب لاعبان على تقليب المفاتيح ، واحدًا تلو الآخر ، حتى يقوم أحد اللاعبين بقلب المفتاح باستخدام "القنبلة". عندما يحدث ذلك ، تنبه شاشة الأجزاء السبعة اللاعبين إلى أن هذا اللاعب قد خسر اللعبة للتو.
الخطوة 1: نظرة عامة
استخدم المشروع العديد من وحدات VHDL التي استخدمناها على مدار هذا الربع. تم استخدام عداد من أربع بتات مع حافة الساعة لمحاكاة رقم عشوائي من أربع بتات لتنشيط أحد المفاتيح. تم استخدام مخطط الحالة أيضًا لإخراج كلمات مختلفة لعرض الأجزاء السبعة ، بدءًا من "PLAY" عندما يكون اللاعبون في منتصف لعبتهم ، إلى "LOSE" عندما يقلب أحد اللاعبين التبديل النشط.
الخطوة 2: المواد
- مجلس تطوير Basys3 من Digilent، Inc.
- Vivado Design Suite BC_DEC.vhd (تم توفير هذا الملف لنا على Polylearn وكتبه براين ميلي)
- عداد 4 بت مصنوع من زحافات تي
- ولايات ميكرونيزيا الموحدة
الخطوة الثالثة: صنع اللعبة
كانت الخطوة الأولى نحو صنع هذه اللعبة هي رسم مخطط دائري بكل المكونات التي سنستخدمها. كانت مدخلات هذا النظام هي الزر 1 والمفاتيح 16 والساعة. كانت النواتج هي عرض الأجزاء السبعة والأنودات. بعد رسم مخطط الدائرة ، كتبنا ملفات مصدر فردية لكل مكون في Vivado وقمنا بتجميعها معًا باستخدام خرائط المنفذ ضمن ملف المصدر الرئيسي.
يدور الأساس الكامل للعبة حول التخصيص العشوائي لأحد المفاتيح الـ 16 ليكون نشطًا بقنبلة ، ولا يعرف اللاعبون أي مفتاح نشط حتى يتم قلب هذا المفتاح النشط. نظرنا في مولدات الأرقام العشوائية والعشوائية الزائفة عبر الإنترنت ، لكننا قررنا في النهاية أن استخدام عداد 4 بت وتعيين المفتاح المقابل ليكون نشطًا هو عشوائي بما يكفي لما كنا نبحث عنه. تمكنا من إعادة تعيين الغرض من عداد 4 بت الذي أنشأناه في مشروع سابق حتى نتمكن من العمل في هذه المهمة. استخدمنا العداد لإنشاء رقم عشوائي بين 0-15 ؛ ثم في المكون main1 ، قمنا بتعيين المكافئ العشري للرقم العشوائي لمفتاحه المقابل على اللوحة. كما هو موضح في التخطيطي ، ينتقل كل من الناتج X ("القنبلة النشطة") من المكون الرئيسي 1 والمفاتيح التي يقوم اللاعبون بتشغيلها إلى FSM1. تقوم آلة الحالة بإخراج قيمة Z ذات بت واحد والتي يتم قراءتها بعد ذلك بواسطة BC_DEC1. آلة الحالة المحدودة التي استخدمناها لها حالتان مختلفتان: في الحالة A ، تُخرج الشاشة السبعة مقاطع "PLAY" وتظل الآلة في هذه الحالة حتى تتعرف على أن المفتاح النشط قد تم قلبه. بمجرد حدوث ذلك ، تنتقل FSM إلى الحالة B حيث تُخرج "LOSE" إلى عرض الأجزاء السبعة وتبقى في هذه الحالة حتى يتم قلب جميع المفاتيح الـ 16 إلى "0". عندما يتم استيفاء هذا الشرط ، تذهب FSM مرة أخرى إلى الحالة A وتنتظر اللاعبين لبدء لعبة أخرى. يظهر أعلاه مخطط مور للمساعدة في فهم ولايات ميكرونيزيا الموحدة.
الخطوة 4: التعديلات المستقبلية
تتضمن بعض التعديلات التي كنا نفكر في إجرائها على لعبتنا إضافة المزيد من القنابل إلى الميدان (ربما تزيد من واحد إلى ثلاثة) ، إضافة عداد نقاط وجولات متعددة. لقد قررنا في النهاية عدم هذه التحسينات ، حيث وجدنا أن لعب لعبة طويلة وممتدة كان عادةً أكثر توتراً وفي النهاية أكثر متعة من اللعبة التي تنتهي عادةً بعد ثلاثة أو أربعة تقلبات.
الخطوة 5: الخاتمة
كنا سعداء للغاية بالنتيجة النهائية لهذا المشروع. ليس فقط لأن الإصدار الأخير من اللعبة كان ممتعًا ، ولكن أيضًا لأن إنشاء المشروع وبرمجته يتطلب منا الاستفادة من معظم ، إن لم يكن كل ما تعلمناه هذا الربع. استخدمنا Flip Flops ، والعدادات ، و FSMs ، والساعة ، وإدخال المستخدم من اللوحة ، والإخراج إلى عرض الأجزاء السبعة.
تعلمنا أيضًا كيف يمكن لبعض الأخطاء النحوية أن تعطل البرنامج تمامًا (حتى لو تم اعتبارها جيدة في لغات البرمجة الأخرى مثل Python أو Java) وذلك فقط بعد عمليات المحاكاة المتعددة والتكرارات المتعددة للشفرة التي يتم تحميلها واختبارها على اللوحة ، هل ستتمكن أخيرًا من إزالة جميع الأخطاء من التعليمات البرمجية الخاصة بك.
موصى به:
كيف تصنع عداد خطوات؟: 3 خطوات (بالصور)
How to Make Step Counter؟: اعتدت أن أؤدي أداءً جيدًا في العديد من الرياضات: المشي والجري وركوب الدراجة ولعب كرة الريشة وما إلى ذلك ، أحب ركوب الخيل للسفر في وقت قريب. حسنًا ، انظر إلى بطني المنتفخ … حسنًا ، على أي حال ، قررت إعادة التمرين. ما هي المعدات التي يجب أن أحضرها؟
Arduino Halloween Edition - شاشة زومبي المنبثقة (خطوات بالصور): 6 خطوات
Arduino Halloween Edition - شاشة زومبي المنبثقة (خطوات بالصور): هل تريد تخويف أصدقائك وإحداث بعض ضوضاء الصراخ في عيد الهالوين؟ أو تريد فقط عمل مزحة جيدة؟ يمكن لشاشة الزومبي المنبثقة القيام بذلك! في هذا Instructable ، سوف أعلمك كيفية جعل زومبي القفز للخارج بسهولة باستخدام Arduino. HC-SR0
وحدة تحكم أتاري بانك مع جهاز التسلسل 8 خطوات للأطفال: 7 خطوات (بالصور)
وحدة التحكم Atari Punk مع جهاز التسلسل المكون من 8 خطوات للأطفال: هذا التصميم الوسيط هو وحدة التحكم Atari Punk المتكاملة وجهاز التسلسل 8 خطوات للأطفال الذي يمكنك طحنه على آلة طحن PCB لسطح المكتب من Bantam Tools. إنها مكونة من لوحين للدائرة: أحدهما عبارة عن لوحة واجهة مستخدم (UI) والآخر عبارة عن لوحة مساعدة
بولت - ساعة ليلية للشحن اللاسلكي DIY (6 خطوات): 6 خطوات (بالصور)
Bolt - ساعة شحن لاسلكية DIY (6 خطوات): الشحن الاستقرائي (المعروف أيضًا باسم الشحن اللاسلكي أو الشحن اللاسلكي) هو نوع من نقل الطاقة اللاسلكي. يستخدم الحث الكهرومغناطيسي لتوفير الكهرباء للأجهزة المحمولة. التطبيق الأكثر شيوعًا هو Qi wireless charge st
كيفية عمل فيديو منقسم الشاشة بأربع خطوات: 4 خطوات (بالصور)
كيفية عمل فيديو منقسم الشاشة بأربع خطوات: غالبًا ما نرى نفس الشخص يظهر في مشهد مرتين في مسرحية تلفزيونية. وبقدر ما نعلم ، ليس للممثل أخ توأم. لقد شاهدنا أيضًا أنه يتم وضع مقطعي فيديو غنائيين على شاشة واحدة لمقارنة مهاراتهم الغنائية. هذه هي قوة الانطباع