الألعاب هي أحد أشكال الترفيه المتاحة للناس. الألعاب من جميع الأنواع متاحة على الإنترنت ، على الأجهزة المحمولة ، على أجهزة الكمبيوتر المكتبية ، وما إلى ذلك. الآن ليس الوقت المناسب لإنشاء واحدة من تلك الألعاب الصعبة.
باستخدام Python ، سنصنع لعبة CLI tic-tac-toe. لنستخدم Python لبناء لعبة Tic Tac Toe مباشرة. سيساعدك في إنشاء منطق اللعبة وتعلم كيفية تنظيم الكود.
تيك تاك تو
قبل أن نبدأ البرمجة ، اعتقدت أنني سألخص اللعبة بسرعة وأناقش خطتي لتطويرها.
أولاً ، سوف نؤسس الافتراض بأن Xs دائمًا ما يأخذ زمام المبادرة ويتحرك أولاً ، مما يمنح المستخدم الفرصة للتصرف.
من وحدة التحكم ، سيتم إدخال رقم بين 1 و 9. في شبكة حيث كل رقم يتوافق مع رقم مختلف (أعلى اليسار هو 1 ، أسفل اليمين 9).
سيحدد الكمبيوتر تلقائيًا ويتحرك بمجرد انتقال المستخدم. سيتم استخدام حلقة لعبة أساسية واحدة تستدعي عددًا من الإجراءات المختلفة من قبلي.
من المحتمل أن يتم الإشارة إلى الوظيفة التي يتم الانتهاء منها في كل رأس من هذا الدرس المستند إلى النص.
تصميم مجلس
سنصور لوحتنا باستخدام تخطيط شبكي ، كما أشرت سابقًا. سنقوم بعمل قائمة باسم اللوحة في Python للقيام بذلك ، وستبدأ بـ 10 قيم فارغة.
نظرًا لأن المستخدم يمكنه فقط إدخال الأرقام من 1 إلى 9 ، وليس من 0 إلى 8 ، فلدينا 10 قيم فارغة بدلاً من 9. لذلك ، من أجل تبسيط الأمور ، سنعطي الإدخال الأول في قائمتنا القيمة "نص فارغ".
بهذه الطريقة ، قد نستخدم 1–9 بدلاً من 0–8 لفهرسة المدخلات في قائمتنا.
insertLetter ()
سيكون الحرف والموضع هما المدخلان لهذه الوظيفة. سيتم وضع الرسالة المطلوبة فقط في الموقع المطلوب.
spaceIsFree (نقاط البيع)
ببساطة ، ستعلمنا هذه الطريقة إذا كانت المنطقة المحددة مجانية. ومن ثم ، لا توجد رسالة هناك بالفعل. سيكون الموضع ، وسيطته الوحيدة ، عددًا صحيحًا بين 1 و 9.
printBoard (مجلس)
يتم إرسال اللوحة كوسيطة لهذه الطريقة ، والتي تعرضها على وحدة التحكم.
isWinner ()
بناءً على اللوحة الحالية ، ستعلمنا هذه الوظيفة إذا فاز الخطاب المقدم. لها معلمتان: le و board (حرف).
يجب أن تكون "X" أو "O". ما عليك سوى النظر لمعرفة ما إذا كان الحرف المحدد موجودًا في كل سطر فائز محتمل على السبورة.
الأساسية()
عندما نريد بدء اللعبة ، يجب أن نسمي هذه الطريقة. سوف تستدعي كل وظيفة من وظائف برنامجنا العديدة وتوجه كيف يفترض أن يعمل البرنامج.
isBoardFull ()
عند تقديمه على متن المركب كمدخل ، ستعيد هذه الطريقة ببساطة True إذا كانت اللوحة ممتلئة و False خلاف ذلك.
playerMove ()
في هذه الطريقة ، سنطلب الانتقال من المستخدم والتحقق من صحته. ستتم إضافة الرسالة إلى اللوحة إذا كانت النقلة مشروعة. إذا لم يكن الأمر كذلك ، فسوف نستمر في طلب ملاحظات المستخدم.
CompMove () - AI
سيبدأ الذكاء الاصطناعي الآن. سيتم التحكم في حركة أجهزة الكمبيوتر بواسطة هذه الوظيفة. سيقوم بتقييم اللوحة واختيار أفضل خطوة للقيام بها.
فيما يلي قائمة بالخوارزمية التي سنستخدمها للقيام بذلك.
- إذا تعذر إنهاء الخطوة الحالية ، فانتقل إلى الخطوة التالية.
- خذ الخطوة الفائزة إذا استطعت.
- انتقل إلى هذا الموضع في المنعطف التالي إذا كان للاعب حركة رابحة.
- اختر زاوية وقم بتدويرها. اختر عشوائيًا إذا كان هناك عدة خيارات.
- ضع نفسك في المنتصف.
- ضع في اعتبارك إحدى الحواف. اختر عشوائيًا إذا كان هناك عدة خيارات.
- إذا لم تكن هناك طريقة للتحرك ، تنتهي المباراة بالتعادل.
حدد عشوائي ()
بالنظر إلى قائمة المواقع المحتملة ، ستختار هذه الوظيفة الإجراء المطلوب اتخاذه عشوائيًا.
بداية اللعبة
يمكن الآن بدء اللعبة بعد أن أنهينا جميع مهامنا. كل ما علينا فعله هو الاتصال بالرئيسية إذا أردنا تشغيل اللعبة مرة واحدة فقط.
لكن في حالتنا ، نريد أن تستمر اللعبة في العمل حتى يقرر المستخدم أنه لم يعد يرغب في اللعب ، لذلك سنضيف حلقة while الصغيرة إلى الخط الرئيسي.
كود كامل
هذا هو الكود الكامل للعبتنا ، والتي اكتملت الآن.
الناتج
وفي الختام
مرحى!
لعبة صنعتها بالكامل من الصفر. إنها ليست لعبة نلعبها بشكل منتظم. لكنها تساعد في كتابة المنطق والحفاظ على بنية واضحة في الكود.
الترميز سعيدة!
اترك تعليق