أهلا ومرحبا.
أود أن أقدم مظاهرة حل لتحدينا السابق
الذي تم تنفيذه لعبة نوع التخمين والأرقام.
لذلك دعونا نطرح الكود كتل ، أغلق مشروعي
الحالي وأنشئ مشروعًا جديدًا.
هذا المشروع الجديد الذي سأذهب إليه للتو لاستدعاء لعبة رقم التخمين.
ستكون أ استمارة القنصلية.
لذلك أنا ذاهب إلى نسميها احزر الرقم.
وما سأفعله فيه هذا لبدء هذا المشروع ، سأعلن عن متغيراتي.
أنا دائما أحب أن أعلن و إنها متغيراتي في الأعلى.
لكنني سأستخدم أيضًا مولد الأرقام العشوائية.
لذلك أريد التأكد من ذلك لدي زوج يشمل.
Stdlib موجود بالفعل بشكل افتراضي.
لذلك كل ما علي فعله هو إضافة زمن. ح لأن هذا مرة أخرى لمولد رقم
عشوائي.
هذا هو أساسًا لـ مقعد مولد رقم عشوائي.
المتغيرات الأخرى التي أنا عليها سأحتاج في هذا البرنامج هو أنني
أريد تخزين أرقامي العشوائية.
لذلك سأقول فقط رقم عشوائي ، سأقوم بتهيئة ذلك إلى 0 حتى
أقوم احصل عليه من المكتبة الفعلية.
لذا أعلن عن التهيئة.
سأقوم بإنشاء متغير لـ تخزين التخمين من المستخدم
، وسأبدأ ذلك بـ 0.
سأقوم بإنشاء متغير آخر وهو عدد التخمينات
والعدد الحالي لـ التخمينات أو في الواقع يجب
أن أقول أكبر عدد من التخمينات ، كحد أقصى عدد التخمينات ، وسأقوم بتهيئة هذا إلى
5 لأن يمكنهم تخمين 5 مرات فقط.
أنا أيضًا يجب أن أخلق وقتًا متغير حتى أتمكن من استخدامه لمولد الأرقام
العشوائي الخاص بي.
لذلك سأقول فقط الوقت ر.
أول شيء أريد أن أفعله قبلي اطلب من المستخدم الإدخال هل أريد
إنشاء رقم عشوائي.
أعتقد أنني يمكن أن أفعل هذا بعد السؤال المستخدم للإدخال ولكن من السهل
أن تفعل أول شيء تفعله.
لذلك سأقوم بتهيئة منشئ الأرقام العشوائية ، سأضع تعليقًا
صغيرًا هناك.
تأكد من أنك تستخدم معنى جيد الأسماء وتأكد من مسافة بادئة.
سوف تستخدم هذه الوظيفة srand التي تحدثت عنها في المحاضرة.
يمكنك فقط تمريرها في البذرة بشكل أساسي.
لذلك سأقول غير موقَّع ، وأنا كذلك سأمر فقط في متغير t الخاص بي.
هذا سوف يحصل على الوقت هو أ الوظيفة التي تحصل على الوقت الحالي.
سأقوم بالمرور في t بحيث يكون بذورها وبعد ذلك سوف أنهيها.
الآن أنا في الواقع بحاجة إلى الحصول على مولد الأرقام العشوائية ، لذلك سأقول
الحصول على الرقم العشوائي.
وكل هذا سيفعله هو تعيين متغير لما يتم إرجاعه
من دالة rand.
لذلك دعنا نقول رقم عشوائي أي هل المتغير المحلي الخاص
بي يساوي ويستخدم عامل التخصيص rand الذي يستدعي وظيفة.
لست بحاجة إلى معرفة أي شيء من هذا ، لكنني سأزرعها بـ 21.
هذا سيضمن أن بلدي عشوائي الرقم يتراوح بين 0 و 20 فقط.
الآن سأخرج فقط أ إقران الرسائل على الشاشة حتى يعرف المستخدم
ما يفعله.
لذلك سأقوم بعمل تطبيق طباعة وأنا كذلك سأقول أن هذه لعبة تخمين.
وبعد ذلك سأقوم بذلك أيضًا أخبرهم أنني
اخترت رقمًا بين 0 و 20 مرة أخرى ، فقط حتى يتم إبلاغهم.
ثم 0 و 20 الذي يجب عليك تخمين وإنهائه مع تغذية الخط.
الآن بعد أن أخبرتهم ما أنا في اللعبة ، سأبدأ في
التكرار.
وسأقوم بعمل حلقة حتى عدد التخمينات يساوي 5.
إذن ما أفضله بالفعل هل أردت توضيح عدد التخمينات
هنا ، لكن لا أريد التهيئة.
أريد التهيئة في حلقتي فقط لأريكم أنني أستطيع فعل ذلك.
إذا قمت بتهيئته هناك ، قبل الفاصلة المنقوطة الأولى في الحلقة for ، يمكنني
تركها فارغة.
لذلك على سبيل المثال يمكنني فعل شيء ما مثل هذا ، قم بتهيئته هنا.
ثم في حلقة for الخاصة بي ، سأفعل فقط ضع فاصلة منقوطة لأنني لست
بحاجة إلى إجراء تهيئة.
لأن تذكر ، في حلقة for الخاصة بنا ، أول شيء
لديك قبل الفاصلة المنقوطة هو التهيئة من متغير التحكم في الحلقة.
لقد قمت بالفعل بتهيئته لذلك لست بحاجة إلى القيام
بذلك ، لكنني لا أريد القيام بذلك.
سوف أعلن فقط هنا ، وسأقوم بتهيئته
هنا.
سأقول الحد الأقصى عدد التخمينات يساوي 5.
هذا متغير التحكم في الحلقة ، سأقوم بتهيئته.
سأقفز من حلقة إذا تم الوصول إلى الحد الأقصى من التخمينات
الخاصة بي.
لذلك أود هنا أن أقول إنني موجود بالفعل سأكتبها بطريقة مختلفة.
سوف أكتبها لذلك تنتقل الحلقة من 5 إلى 0.
لذا فإن العدد الأقصى الخاص بي يساوي 5.
سيكون من الأفضل أن أعد تسمية هذا المتغير.
دعونا نعيد تسميته و قل عدد التخمينات.
وعدد التخمينات سيبدأ كـ 5.
وسأقوم بذلك هذا يعود إلى الوراء.
وعندما يكون عدد التخمينات 0 ، أريد القفز من الحلقة.
إذاً شرط الخروج من الحلقة ، سأقول أن عدد التخمينات
أكبر من 0.
انظر ماذا أفعل هنا.
سأقفز فقط من حلقة إذا لم يتبق لدي المزيد من التخمينات.
لذلك إذا كنت أكبر من 0 ، فأنا كذلك ذاهب للبقاء داخل الحلقة.
ثم آخر شيء أريده تقدم في حلقة for بعد تعديل القولون
المناخي الثاني من متغير التحكم في الحلقة.
لذلك سأقوم بعمل مطروحًا منه عدد التخمينات.
وماذا يجب أن تلاحظ في حلقة for هذه هي
أنني سأبدأ ... سأعود للوراء تقريبا.
سأبدأ في الخامسة وسأذهب إلى الصفر.
لجميع الأمثلة التي نقدمها في محاضرة ، نبدأ من 0 ونصعد.
ولكن يمكنك القيام بالأمرين معًا ، لا يهم.
ما زلت تتكرر هنا 5 مرات.
الآن أريد عرض ملف رسالة تخبرهم بعدد
المحاولات المتبقية.
لذلك سأقول printf ، وسأقوم في الواقع بدمج عامل التشغيل
الثلاثي هنا لأننا لم نستخدمها.
لا تحتاج إلى القيام بذلك بهذه الطريقة ، لكنني سأفعل ذلك بهذه الطريقة
فقط لأوضح لك كيف يمكن استخدام عامل التشغيل الثلاثي.
لذلك سأطبعك هنا لديك في المئة d من المحاولات في المئة s المتبقية.
النسبة المئوية د ستكون عدد متساوٍ من التخمينات و
tr بالمائة s ، سيتغير.
ستكون إما محاولات أو ستتم تجربته.
ولذا سوف أتغير ما يتم عرضه بناءً على عدد التخمينات
المتبقية لدي.
إذا كان عدد التخمينات تساوي 1.
لا أريد التخطيط للمحاولات ، واحدة المحاولة المتبقية ، هذا غير منطقي.
أريد طباعة محاولة واحدة.
لذا سأستخدم هنا عامل تشغيل مصطلح أو بشكل أدق
المشغل الشرطي.
سأقول ما إذا كان عدد التخمينات يساوي 1 ، ثم عيّن عدد التخمينات المساوية
لـ y وإلا اضبطه على IES.
وسأطبعها ما تفعله النسبة المئوية ، كل ما يتم
إرجاعه هنا.
لذلك هذا سوف يعود إما y و IES وعرض المعلومات الصحيحة.
لذلك فعلت ذلك فقط لأكون يتوهم قليلاً كيف يمكنك
استخدام المحطة ، والطباعة من المعلومات الصحيحة.
بعد أن قمت بطباعة الرقم من المحاولات أخيرًا ، ثم أريد أن أخبرهم
بإدخال تخمين.
لذلك سوف أتحمل بعض المعلومات
وقل فقط printf أدخل تخمينًا و سيكون لهذا خط تغذية.
لذا أدخل تخمينًا ، ثم سأذهب لقراءة هذا التخمين باستخدام scanf ، نعرف كيف نقرأ من لوحة
المفاتيح.
سيكون عددًا صحيحًا ، لذلك أنا كذلك سأقوم بعمل النسبة المئوية
وسأضعها في متغير التخمين.
لذلك أنا بحاجة إلى استخدام علامة العطف.
الآن علي أن أقوم بفحصي.
لا بد لي من التحقق مما إذا كان تخمين ذلك أنا من الأمور التي تقلقني.
لذلك لدينا هنا شرط خروج آخر.
سأستخدم عبارة if.
سأقول ما إذا كان بلدي التخمين يساوي رقمي العشوائي ، ماذا أريد
أن أفعل؟
حسنًا ، أريد أولاً أن أطبع وأخبرهم أنه تم
تخمينهم بشكل صحيح.
لذلك سأطبع ، مبروك ، لقد خمنت ذلك.
ماذا أريد أن أفعل أيضًا إذا خمنوا بشكل صحيح؟
أريد الخروج من الحلقة.
فكيف يمكنني الخروج من الحلقة؟
يمكنني وضع استراحة.
يمكنني أن أفعل استراحة ، ذلك سوف يقفز من حلقي.
الآن إذا لم تكن متساوية ، فحينئذٍ اريد اضافة اخر اذا
إذا لم تكن متساوية ، فأنا أريد التحقق من ذلك تأكد من التحقق من صحة الرقم.
لذلك قبل أن أقول أنه يمكن أن يكون لديك حلقة متداخلة للتحقق من الصحة بحيث يدخلون
مرة أخرى ، أنت لست بحاجة إلى القيام بذلك ، يمكنك فقط الحصول
على عبارة f.
لذلك أريد هنا التحقق من صحة الرقم.
إذا كان لا يساوي رقم عشوائي ،
أريد التأكد من أنه بين 0 و 20.
لذلك إذا كان التخمين أقل من 0 أو نحن نستخدم عامل تشغيل
منطقي أو شريطين متوازيين أو التخمين أكبر من 20 والذي يتم بشكل أساسي التحقق
من وجود تخمين غير صالح.
إذا كان هذا هو الحال وأنا لست كذلك سأستخدم قوسًا لأن لدي عبارة واحدة
فقط هنا ، تعتبر الأقواس اختيارية إذا كان لديك عبارة واحدة
فقط.
لذلك إذا أدخلوا تخمينًا غير صالح ، كل ما سأفعله هو printf.
سأطبع ما قلته الرقم بين 0 و 20.
وما سيحدث هنا لا شيء.
سوف تطبع فقط هذا وسيذهب
إلى التكرار التالي.
سيخبرهم كيف العديد من المحاولات التي تركوها
وستدخل في تخمين.
الآن إذا كنت لا تريد صالحة الأرقام إذا أدخلوا أرقامًا
صالحة لا يتم احتسابها كتخمين ، ثم يمكنك الحصول على حلقة متداخلة.
لكن إذا دخلوا إلى شيء 25 ، لا يزال يعتبر بمثابة تخمين.
لذلك أقول فقط أنني أعددت رقم بين 0 و 20.
إذا أدخلوا رقمًا صالحًا لكنه لم يكن صحيحًا ، سيكون هذا
هو البند الآخر.
هنا ، سأقول فقط ، آسف ، رقم خاطئ ، وسأخبرهم
ما إذا كان أكبر من أو أقل من.
ويمكنني استخدام الثلاثي عامل التشغيل هنا ، لكنني لن أفعل ذلك.
لذلك دعونا نضيف إذا هنا أيضًا.
وإلا إذا كانت العشوائية أكبر من خمن ، إذن ماذا أريد أن أطبع؟
أريد أن أطبع آسف في المئة د هو خطأ ، في المئة د سيكون تخمينهم.
رقمي هو النسبة المئوية s هي الكلمة الأولى.
إذا كانت العشوائية أكبر ، رقمي أكبر.
رقمي أكبر من ذلك وأنا لا أستخدم
أي نسب ولديّ خط تغذية فقط.
وإلا إذا كان الرقم العشوائي أقل من التخمين ، ثم أريد أن أخبرهم أنه
أقل.
لذلك يمكنني عمل نسخة و الصق نفس الشيء.
أستطيع أن أقول آسف ، الرقم خطأ ، رقمي أقل من ذلك.
ومرة أخرى ، يمكنك فعلاً ضع هذه 2 ifs.
هل يمكن أن يكون لديك واحد آخر إذا
ويمكنك في الواقع تقديم بيان شرطي هنا.
يمكن أن يكون لديك عامل التشغيل الثلاثي ، لكنني سأستخدم 2 ifs وأقول
أنه أقل من ذلك.
وبعد ذلك سيكون الأمر ، هذا سينهي الحلقة.
وإذا خرجنا من الحلقة ولم نخمن بشكل صحيح
وتجاوزنا عدد المحاولات لدينا ، ثم سأخبرهم
أن لديهم 5 محاولات وهم لم أحزر الرقم وسأقول
لهم الرقم.
لذا فإن المخرجات الأخيرة للمستخدم ليقولها لهم أنهم لم يفوزوا بالمباراة
ويخبرونهم بالرقم.
لذلك كان لديك 5 محاولات وفشلت ، كان الرقم رقمًا عشوائيًا.
حسنًا ، هل هذا منطقي؟
نحن نقوم بالكثير من الأشياء هنا.
نحن نستخدم عبارات if ، وإلا العبارات في حلقة ونقوم بتنفيذ
لعبة الأرقام.
ثم آخر شيء هو نحن العودة من الوظيفة الرئيسية.
لذلك دعونا نمضي قدمًا ونجمع و ما الذي كان يجب أن تفعله
طوال هذا التمرين؟
كان يجب أن تختبر والعمل في جزء صغير.
ربما يجب أن يكون لديك بدأ العمل أولاً ، فقط احصل على
الرقم العشوائي للعمل بعد ذلك الاختبار والترجمة والاختبار.
ثم ابدأ الحلقة الخاصة بك.
تأكد من تشغيل الحلقة الخاصة بك فقط عدد التخمينات ، 5 مرات كحد أقصى ثم احصل على
ذلك للعمل والاختبار.
ثم اطلب من المستخدم الإجابة بعض المعلومات ، احصل على ذلك
للعمل واختباره.
ثم قارن وقت الخروج إذا يخمنون بشكل صحيح ، اختبروا بياناتك ثم اكتبوها
اختبار ، هذه هي الطريقة التي سأنفذها.
لذلك دعونا نبني هذا ومعرفة ما إذا كان يجمع.
آمل ألا أرتكب أي أخطاء.
سأقول البناء.
لدي خطأ ، أنا لديها رقم غير صالح.
يجب أن يكون رقمًا عشوائيًا ، ليس عشوائيًا لأن هذا هو اسم
المتغير الخاص بي.
وهذه المرة لدي 0 أخطاء 2 تحذيرات.
لدي نسبة د نتوقع بعض كثافة العمليات المطابقة.
لقد نسيت أن أخمد رقم عشوائي أو التخمين.
التخمين هنا و تخمين والآخر.
أريد أن أقول لهم أن تخمينهم آسف ، كان التخمين خاطئًا ، ليس عليك القيام
بذلك ، ولكن مجرد شيء لطيف.
الآن دعونا نبنيها لأنك أنت تريد دائمًا إصلاح تحذيراتك.
تريد أن يكون لديك 0 تحذير 0 أخطاء.
الآن عندما نقوم بتشغيل هذا ، علينا أن نختبر.
وهناك العديد من الاختبارات المختلفة الحالات التي تريد تشغيلها هنا.
سترغب في إجراء اختبار متعدد لأنك تذكر أنه ليس من الجيد أبدًا
اختبار شيء واحد فقط.
لذلك هنا يقول هذا تخمين لعبة ، لقد اخترت رقمًا
بين 0 و 20 ، ويجب عليك ذلك تخمين ، لديك 5 محاولات متبقية.
لذا سأضع 16.
آسف ، 16 خطأ ، و الرقم أقل من ذلك.
سأحاول الحصول عليه 8.
8 خطأ ، أقل من ذلك.
سأفعل 4.
رقم 4 خطأ ، رقم هاتفي أكبر من ذلك.
أوه لقد أخطأت ، أنا لم أقرأ ذلك أولاً.
إذن فهو أكبر من 8.
لنجرب 12.
لم يتبق لي سوى محاولتين.
أعتقد أن الحق مع 12.
لذلك تقول التهنئة.
لكنك تريد أيضًا اختبار الفشل.
تريد اختبار بعض الأشياء هنا ، ولكن دعني أختبر
هنا وسأقول تخميني و سأضع 0.
0 خطأ.
سأستمر في وضع 0 و هناك أعتقد 5 مرات كنت مخطئا.
تقول أن لديك 5 محاولات وفشلت.
الرقم الذي أنت أراد أن يخمن كان 3.
لذلك هذا يعمل.
الآن دعنا نختبر للتأكد من ماذا يحدث إذا أدخلنا أرقامًا غير صالحة.
إذا دخلت 45.
قلت أن الرقم هو 0 و 20.
هذه حالة اختبار أخرى واعتبرت محاولة.
إذا لم أكن أريد هذا الحساب كملف حاول ، يمكن أن يكون لها حلقة متداخلة.
أعتقد ذلك حول هذا الموضوع.
لقد اختبرنا جميع الحالات.
اختبرنا الحالات حيث لقد خمنت بنجاح.
لقد اختبرنا الحالة حيث أنت لم تخمن بنجاح.
واختبرنا الحالة حيث قمت بإدخال رقم غير صالح.
ربما الاختبار الآخر الوحيد تأكد من أنه كان يقول أكبر من وأدنى من ، التي أعتقد أننا اختبرناها
في التجربة الأولى ستخبرنا بالفعل
للدخول أقل أو أكبر من.
لذلك دعونا نجرب ذلك.
لذلك في هذا الوقت عندما أدخل 20 ، تقول أقل مما هو جيد.
الآن أنا ذاهب للدخول 10 وظننت ذلك.
لذلك أعتقد أنها سريعة.
لكن يجب أن نرى أقل من و أكبر من نفس الناتج.
حاول مرة أخرى ، والعشوائية number يعمل لأنني أقوم بتوليد أرقام مختلفة
في كل مرة أقوم بتشغيل البرنامج.
20 خطأ.
لنجرب الآن 19.
لنجرب 1 وهو أعظم من ذلك.
لذلك أرى أكبر وأقل من.
لذلك أنا متأكد من أنها تعمل.
تبدو جيدة جدا بالنسبة لي.
شيء واحد كان يجب أن تلاحظه كان هناك خطأ بسيط في البرنامج
الذي كنت أختبره نوعًا ما.
لذلك عندما قمت بتشغيله لأن لدينا هذا الاستراحة هنا ، ما زال
يطبع أنني فشلت على الرغم من أنني نجحت.
لذلك كان يجب أن تكون قد لاحظت أنه في الإخراج السابق ،
أعتقد أن الرقم الصحيح.
انها مطبوعة مبروك.
ولكن بعد ذلك أيضًا طبع أنا فشل ، هذا لا يبدو صحيحًا.
لذا فإن طريقة إصلاح ذلك هي أنت ليس لديك اختراق
، فأنت تريد العودة.
وحتى الآن عندما تعود لن
تطبع على السطر 39 إذا فزت.
لن تطبع من أنك فشلت.
لذلك يجب عليك اختبار أخير اكتشفنا هذا سابقًا
، ولكن عندما نبني ونخمن بشكل صحيح ، لن يظهر خطأ.
حتى نتمكن من حفظ الجري ومتى قم بتشغيل هذا ، لديك 5 تخمينات.
سأقول 10 ، أقل من ذلك.
سنقول 6 ، وقد خمنت ذلك.
وستلاحظ هناك تقول مبروك.
لا نرى هذا الناتج الإضافي هذا يقول أنني فشلت أيضًا.
لذلك تريد أن تتأكد منك أضف هذا العائد على السطر 30 حتى
يعمل البرنامج بشكل صحيح.
يمكنك إضافة بيان if آخر إذا أردت أن لا تطبع
النسخة المطبوعة ، كان من الممكن أن تحصل على فاصل هنا ثم في
printf كان بإمكانك التحقق من عدد التخمينات كان عليك أيضًا تحديد ما
إذا كان أقل من 5 فتهانينا.
ولكن هناك حشرة صغيرة هناك ، و آمل أن تكون قد لاحظت
ذلك أثناء الاختبار ، فإن الإرجاع سيصلحه.
لذلك برنامج صغير أنيق.
آمل أن يكون هذا قد ساعدك في تعلم أ الكثير عن الحلقات
وجميع بيانات قرارك وحل المشكلات حقًا.
نأمل أن تكون قد خرجت من هذا وصممت هذا قبل أن تبدأ
الكتابة فعليًا رمز ، هذا مهم دائمًا.
أتمنى أن يساعدك هذا.
سأقدم شفرة المصدر لذلك أنت يمكن مقارنتها ورؤيتها وتحليلها.
شكرًا لك.