تمرين - نموذج ومنصة اللعبة الخاصة بك

مكتمل

لا تختلف اللعبة عن نظام الفواتير المذكور في الوحدة السابقة. لا يزال لديك نفس الأجزاء في عالم البرمجة الموجهة للعنصر (OOP). هذه الأجزاء هي العناصر والبيانات والسلوك. مثلما فعلنا في نظام الفواتير، يمكنك وضع نموذج أساس اللعبة والورق والمقص عن طريق وصف مجالها أولاً، ثم حاول سرد ماهية ذلك. يُقصد بنمذجة اللعبة ما كنت تنوي فعله بعد ذلك. ستقوم أيضًا بكتابة بعض التعليمات البرمجية التي يمكنك البناء عليها لاحقًا.

تحليل الأساس والورق والمقص لنمذجة OOP

هذا التمرين هو ممارسة النمذجة. تحصل على وصف لنطاق المشكلة. ثم سيُطلب منك إخراج الكلمات الرئيسية المهمة من النص وترتيبها في جدول.

تلميح

إذا كنت بحاجة إلى التذكير بكيفية وضع النماذج، راجع جزء "البحث عن العناصر والبيانات والسلوك" في الوحدة الثانية. تذكّر أن النمذجة تبدأ بطرح الأسئلة من يتفاعل مع من أو من يفعل ماذا لمن.

وصف المشكلة

الأساس والورق والمقص هي لعبة يقوم بها مشاركان. تتكون اللعبة من جولات. في كل جولة، يقوم المشارك باختيار رمز من الصخور أو الورق أو المقص، ويفعل المشارك الآخر الشيء ذاته. يُحدد الفائزبالجولة من خلال مقارنة الرموز المُختارة. قواعد حالة اللعبة هي أن الصخور تفوز على المقص، والمقص يهزم (يقطع) الورقة، والورق يهزم (يغطي) الصخور. يحصل الفائز في الجولة على نقطة. تستمر اللعبة للعديد من الجولات التي يتفق عليها المشاركون. يكون الفائز هو المشارك الذي يحصل على أكبر عدد من النقاط.

نموذج اللعبة

  1. انسخ النص السابق والصقه في مستند. سلّط الضوء على الكلمات الرئيسية المهمة بجعلها بارزة أو مائلة.

    تلميح

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

    نعرض فيما يلي نصًا يصف المشكلة مع تسليط الضوء:

    الأساس والورق والمقص هي لعبة يقوم بها مشاركان. تتكون اللعبة من جولات. في كل جولة، يقوم المشارك باختيار رمز من الصخور أو الورق أو المقص، ويفعل المشارك الآخر الشيء ذاته. يُحدد الفائزبالجولة من خلال مقارنة الرموز المُختارة. قواعد حالة اللعبة الدولة هي أن الصخور تفوز على المقص، والمقص يهزم (يقطع) الورقة، والورق يهزم (يغطي) الصخور. يحصل الفائز في الجولة على نقطة. تستمر اللعبة للعديد من الجولات التي يتفق عليها المشاركون. يكون الفائز هو المشارك الذي يحصل على أكبر عدد من النقاط.

  2. بعد ذلك، قم بإنشاء جدول باستخدام الأعمدة Phase، وActor، وBehavior، وData. رتّب الكلمات المميزة التي تعتقد بأنه من الضروري وضعها.

    تلميح

    استغرق بضع دقائق للتفكير في ذلك، ثم التمرير إلى أسفل بعد القليل من التفكير.

    ها هو الشكل الذي يمكن أن يبدو عليه الجدول الناتج:

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

إنشاء الفئات والحالة

يوضح الجدول السابق قصة كيف تقدم اللعبة بالمراحل المختلفة. من خلال التركيز على العمودين Behavior وData، يمكنك ترتيب بعض التعليمات البرمجية الأولية كأساس لبناء اللعبة.

  1. انسخ التعليمات البرمجية أدناه إلى المحطة الطرفية واضغط على Enter، لإنشاء ملف rock-paper-scissor.py وفتح المحرر:

    touch rock-paper-scissor.py
    code .
    

    تلميح

    استخدم القائمة السياقية (انقر بزر الماوس الأيمن) للصق التعليمات البرمجية في terminal.

  2. أعطه المحتوى التالي واحفظ الملف (Ctrl + S أو Command + S على macOS):

    class Participant:
    class GameRound:
    class Game:
    

    تلميح

    استخدم Ctrl+V للصق التعليمات البرمجية في المحرر.

    لديك الفئات المطلوبة التي تم إنشاؤها للعبة الخاص بك. بعد ذلك، عليك التفكير فيما لديك من بيانات، وما هي الفئة التي توضع عليها.

  3. واصل العمل مع الملف ذاته، وبادر بتوسيع التعليمات البرمجية على النحو التالي، ثم احفظ الملف:

    class Participant:
        def __init__(self):
            self.points = 0
            self.choice = ""
    
    class GameRound:
    
    class Game:
        def __init__(self):
            self.endGame = False
            self.participant = Participant()
            self.secondParticipant = Participant()
    
    

    تلميح

    • يمكنك سحب الفاصل بين المحرر وterminal لضبط المساحة المتوفرة.
    • يمكنك إغلاق المحرر من القائمة ....
    • يمكنك كتابة code . في terminal لإعادة فتح المحرر.

    منحنا الفئة Participant السمتين points وchoice على النحو المُشار إليه في السطرين الأول والثالث من الجدول الخاص بك.

    أعطينا الحقل GameendGame بسبب السطر الرابع. بالإضافة إلى ذلك، Game تضم الفئة اثنين من المشاركين هما participant وsecondParticipant. يوجد دوران يمكن أن يكونا لهما متغير على كائن. يمكن أن تكون الأدوار عبارة عن حالة، مثل أرضية المصعد، أو سمة وصفية. تعد السمتينpoints وchoice عبارة عن متغيرات الحالة في هذا السياق. المشاركون في Game الفئة عبارة عن سمات وصفية لأن اللعبة تضم مشاركين.

    تهانينا! لقد أضفت فئات إلى لعبتك وأنشأت سمات البيانات التي قمت بتعيينها للفئات التي تم إنشاؤها. عند هذه النقطة، توجد لديك تعليمة برمجية جيدة للبداية. كما أنها لا تفعل الكثير حتى الآن بسبب الحاجة إلى السلوك. ستضيف سلوكًا في وحدة التمرين التالية.