أهلا ومرحبا بكم مرة أخرى.
في هذه المحاضرة أريد اعطيكم تحديا اخر.
إنها مرتبطة بالوظائف ، لكن هذا التحدي سيكون
أكثر حول فرق تسد. مستمر لكي تكون أكثر حول تنظيم برنامجك
حول الوحدات ، فسيتم ذلك أن تكون أكثر حول حل المشكلات.
ما أريدك أن تفعله هو ما أريد لك أن تكتب لعبة تيك تاك تو.
هذا سوف يساعدك فقط تصبح حلاً للمشكلات بشكل أفضل
، وسوف تساعدك على التنظيم برنامجك حول الوظائف.
ستستخدم أيضًا مصفوفة ، سيتعين
عليك تحديدها لمعرفة كيفية تنسيق بيانات معينة
، لكنها ستكون ملف محاكاة لعبة تيك تاك تو.
لن نكتب جهاز كمبيوتر.
سيكون لاعبًا 1 مقابل 2 لاعب.
لذلك أريدك أن تكتب أ البرنامج الذي يلعب تيك تاك تو.
نأمل أن الجميع على دراية بهذا البرنامج أو هذه
اللعبة ، ينبغي أن أقول.
إنها مجرد لعبة يتم لعبها على شبكة 3 × 3 مع لاعبين.
أنت تتناوب.
X هو أنف.
نأمل أن يدق هذا الجرس.
لم أرغب في الذهاب و شرح هذه اللعبة ، ولكن آمل أن تكون على
دراية بـ tic-tac-toe.
سأقدم القليل عرض توضيحي لكيفية عملها وكيف
أتوقع أن يتم تنفيذ الإخراج.
لكنها لعبة أساسية.
ما أريد أن أفعله هو أنت ربما تحتاج
إلى إنشاء مصفوفة لتمثيل اللوحة الفعلية ، شبكة 3 × 3.
أعتقد أنه يمكنك أن تفلت من العقاب فقط إنشاء مجموعة ذات بعد واحد.
يمكنك بالفعل إنشاء ملف صفيف ثنائي الأبعاد أيضًا لتمثيل الصفوف
والأعمدة.
من المحتمل أن يكون ثنائي الأبعاد أكثر بديهية ، ولكن قد يكون من
الصعب بعض الشيء تصورها في التعليمات البرمجية الخاصة بك.
لكن في كلتا الحالتين.
الشيء الجيد في البرمجة هو هناك العديد من الحلول لمشكلة ما.
سأخبرك بواحد من بلدي الحلول ونهج التصميم الخاص بي ، لكن
لا تتردد في تغيير التصميم.
ما دمت تستخدم ملفات c يبني بشكل صحيح ، هذا
كل ما يهمني.
أريدك أن تتعلم كيفية استخدام c.
طالما أن برنامجك معدّل وهو منظم ويسهل
صيانته ورمز الجودة الخاص به ، هذا ما يقلقني.
لذلك هناك طريقة واحدة لتنفيذ طريقة واحدة فقط يمثل اللوحة كمصفوفة أحادية
الأبعاد تحتوي على عشرة عناصر.
السبب لدي عشرة عناصر هنا هو لا أريدك أن تستخدم الصفر.
هذه العناصر العشرة تسير لتمثيل المجلس
، لكنهم سيمثلون أيضًا الإحداثيات على السبورة.
لذلك سأقوم بعرض هذا وعرضه كيف أفكر في العمل.
لكن بالطريقة التي تسير بها لاختيار
المربع الذي تريد رسمه بالفعل أن تستند إلى رقم العنصر.
بالإضافة إلى إنشاء مصفوفة لـ على السبورة ، عليك أن تحاول التفكير
في كيفية حل هذه المشكلة أسفل ، كيف ستنظمها.
أنا أفكر في الحد الأدنى أنك ستحتاج إلى
ثلاث وظائف على الأقل ، وربما أكثر.
لكنك تحتاج على الأقل أن يكون لديك واحد الوظيفة التي تتحقق من الفائزين.
هذا سوف يرى فقط في الأساس إذا ربح شخص ما في المباراة أو يمكنه
أيضًا البحث عن التعادل.
يجب أن يكون لديك وظيفة الذي يرسم اللوحة.
لأنك سترسم اللوحة بعد كل دور للاعب.
وأنت ذاهب إلى - إذن ستعيد استخدام هذا.
وظيفة أخرى لوضع العلامات اللوحة
، يحدث هذا عندما يريد المستخدم بالفعل أن يضع x أو o في مربع معين.
أنت بحاجة إلى وظيفة لتعيينها هذا المربع كعلامة x أو o.
ما سيحدث هو أنك ستكون على الأرجح ملء المصفوفة بهذا x أو o.
وبهذه الطريقة يمكنك إلقاء نظرة على ملف مجموعة لمعرفة ما إذا كنت قد فزت أو خسرت.
وفي لوحة العلامات ، هو سيسمح لك أيضًا بالتحقق من
تحديد غير صالح.
لذلك إذا كانت التحديدات صالحة واحد إلى تسعة وأدخل المستخدم
عشرة ، يمكنك القول ، مرحبًا ، لا يمكنك فعل ذلك ، حاول مرة أخرى.
يجب أن تكون اللعبة سهلة الاستخدام ، يجب أن تكون بديهية للاستخدام
بقدر منظور المستخدم و ينبغي تنظيمها بقدر منظور
البرمجة.
حقا فكر في هذا واحد.
احصل على بعض التخطيط ، قم ببعض التخطيط ، احصل على بعض الأوراق ، ابدأ في كتابة بعض التصميمات حول كيفية معالجة هذه المشكلة
وماذا الوظائف التي ستحتاج إلى استخدامها.
الطريقة التي أفكر بها من هذا سيتم تشغيله ، دعني أريكم
عرضًا توضيحيًا صغيرًا.
لن أريكم أي مصدر رمز ، ولكن هذا ما أتخيله ستبدو
اللعبة عند تشغيلها.
ربما عنوان صغير التي تقول ، مهلا ، اللعبة.
ثم قليلا معلومات عن اللاعب.
اللاعب 1 سيكون x ، اللاعب 2 سيكون o.
تذكر ، هذا ليس لديه للعب الكمبيوتر.
يمكنك فقط وضع كل منعطف.
لذلك عليك أن تلعب هذه اللعبة مع صديق يجلس بجانبك ، وسيتعين
عليهم ذلك اقول لكم مكان وضع الرقم.
إذا كنت تحصل حقا طموح ، يمكنك كتابة
اللعبة للعب ضد الكمبيوتر.
لكن ستلاحظ أن 3 × 3 تحتوي الشبكة على أرقام في البداية.
يمكنك استخدام هذه الأرقام للدخول.
لذلك إذا كنت لاعب واحد يريد ليأخذوا دورهم ويمثلون
س ، اعتمادًا على ماذا الرقم الذي يدخلونه ، حيث
سيتم وضع x.
لذلك نطبع الشبكة ونعرضها اللوحة ثم نخبر المستخدم
الذي يكون دوره و نطلب منهم إدخال رقم.
لذا في هذه الحالة ، سوف أمضي قدمًا وأدخل الرقم الثاني واضغط على العودة.
وماذا سيحدث بعد أن أصبت الثانية والعودة
، سيرى في الواقع ما إذا كان شخص ما قد فاز ، سيقوم بمسح الشاشة وسيعيد
رسم اللوحة.
لذا بعد أن أصبت 2 وأدخل ، ستفعل ذلك لاحظ أنه لا يزال لدي اللقب ، ولا يزال
لدي اللاعب 1 واللاعب 2.
لكن الآن في المربع 2 ، لدي علامة x.
إذن ما الذي كان يجب أن أفعله أيضًا هناك كان يجب
أن أتحقق قبل أن أعرض اللوحة أم لم يكن لدينا فائز أو تعادل.
ومن الواضح أن هذا هو الأول دخول لذلك ليس لدينا أي منهما.
بما أنه ليس لدينا فائز أو التعادل ، سأطلب
الآن من اللاعب إدخال رقم ثم بعد ذلك يمكنهم اختيار أي رقم هنا.
الآن إذا قمت بإدخال غير صالح رقم مثل 10 ، يجب أن تخبرني أنه
غير صالح.
ويجب أن يسمح لي بذلك ربما تقوم بحركة أخرى.
إذا كنت سأدخل 2 ، 2 يجب أن يكون أيضًا غير صالح.
لذلك إذا قمت بإدخال 2 ، فسيظهر أيضًا أنه غير صالح لأن 2 مأخوذة بالفعل بواسطة x.
لذلك إذا كان البرنامج يسمح لي بذلك حاول مرة أخرى ، يمكنك فقط التخلص من دورهم
ولكن هذا ليس عدلاً حقًا.
لذا الآن سأقول فقط أين أريد أن أضع o؟ سأقول 5 ، سأضع
حركة غير صالحة ، ستعيد رسم اللوحة
وهناك o و 5.
والآن يقول اللاعب 1.
وتستمر في فعل هذا حتى لديك فائز أو تعادل.
سأقول فقط 9.
الآن لدي x هناك ، صحيح الإدخالات هي 1 3 4 6 7 و 8.
سأقول 3.
ودعونا نحاول إيجاد قيمة x حتى الآن ، ستنتقل x إلى ثمانية
وسأضع o و 6 فقط لأريكم أن اللعبة تعمل مع الفائز.
ثم أضع 7 على x ، اللعبة يجب أن يكون قد انتهى الآن. أنا ضرب العودة.
تقول أن اللاعب يفوز ، وينتصر حتى أنني شغلت صوتًا صغيرًا من أجلي ، قمت
ببعض الأشياء الرائعة هناك.
وهكذا انتهت اللعبة ، فاز اللاعب الأول.
ويجب أن يحدث ذلك أيضًا إذا اللاعب 2 يفوز أو إذا كان هناك تعادل.
لذا فكر كيف تريد لمهاجمة هذه المشكلة.
برنامج صغير لطيف.
سأذهب من خلال حل وتقديم كود المصدر في المحاضرة القادمة. شكرًا لك.