خوش آمدید دوباره.
در این ویدیو می‌خواهیم یک سؤال و پاسخ‌های آن را نمایش دهیم.
کاربر می‌تواند پاسخ درست یا هر پاسخی را وارد کند و سپس به سؤال بعدی برود.
برای این کار، متدی می‌سازیم که شروع آزمون و مدیریت سؤالات را بر عهده دارد.
این متد همچنین سؤالات و پاسخ‌ها را نمایش می‌دهد.
public void startQuizپس این متد را به صورت تعریف می‌کنم.
این متد مسئول نمایش چیزی مانند خوش آمدید به آزمون خواهد بود.
خوش آمدید به آزمون.
سپس باید بدانیم که در کدام سؤال هستیم.
پس می‌گوییم که از سؤال یک شروع می‌کنیم.
این برای نمایش شماره سؤالات استفاده می‌شود.
ایده این است که شماره سوال فعلی را نمایش دهیم.
for eachسپس نیاز به یک حلقه داریم تا از روی همه سوالات عبور کند.
questionپس می‌نویسیم: ، درست است؟questions در
questionsاین حلقه هر سوال را در آرایه بررسی می‌کند.
همین سوال‌ها.
سپس شماره سوال و خود سوال نمایش داده می‌شود.
اینجا فقط می‌گویم سوال
و سپس شماره سوال فعلی را نمایش می‌دهیم.
این فقط برای نمایش شماره سوال است.
و من بلافاصله شماره سوال را افزایش می‌دهم.
در این لحظه این سوال شماره یک است.
و در تکرار بعدی حلقه، سوال شماره دو خواهد بود.
حالا می‌توانیم سوال را نمایش دهیم.
display questionپس تابع را صدا می‌زنیم.
کدام سوال را می‌خواهیم نمایش دهیم؟
این همان سوال است.
همان مورد از تکرار حلقه، هر سوالی که در حال حاضر داریم.
for eachاین کاری است که این حلقه انجام می‌دهد.
درست است.
و سپس می‌توانیم انتخاب کاربر را بگیریم.
int user choiceپس خواهد بود.get user choice برابر
یعنی از متد انتخاب کاربر استفاده می‌کنیم.
اینجا است.get user choiceهمین
به طور خلاصه می‌گوییم: انتخاب کاربر را بده، مثل کاری که در انجام دادیم display question
همانطور که می‌بینید، اینجا هم انتخاب کاربر را گرفتیم.
بنابراین می‌توانیم این کد قدیمی را حذف کنیم، چون منطق بهتری برای این کار داریم.
for eachدر این حلقه بررسی می‌کنیم که آیا انتخاب کاربر درست است یا خیر.
یعنی question.isCorrectAnswer با user choice.
نکته جالب این است که حالا از متدی که ساخته‌ایم استفاده می‌کنیم، متدی بولی که بررسی می‌کند.
آیا انتخاب وارد شده صحیح است یا نه
است که اکنون استفاده می‌کنیمcorrect answerاین متد همان
question.isCorrectAnswerپس داریم از استفاده می‌کنیم و انتخاب کاربر را به آن می‌دهیم.
وما انتخاب کاربر رو بهش می دیم
getUserChoice پس در متد .
و این متد مطمئن می‌شود که انتخاب کاربر در واقع یک گزینهٔ معتبر باشد.
و اینجا بررسی می‌کنیم که آیا این گزینهٔ معتبر، پاسخ درست بوده است یا نه.
و اگر این درست باشد — چون این پاسخِ صحیح است.
bool اگر نشان‌گر ماوس را روی آن ببرید می‌بینید که یک مقدار برمی‌گرداند.
همان چیزی است که اینجا تعریف کرده‌ایم.
برمی‌گرداندtrue یا false پس مقدار
correct پس اگر پاسخ درست بود، کلمهٔ را نمایش می‌دهیم.
(CW) پس اینجا را نمایش می‌دهیمcorrect و ما
wrong و اگر نادرست بودیم، می‌توانیم را نمایش دهیم.
برای مثال — چندان دوستانه نیست.
اما بله.
را نمایش دهیم.wrong پس اینجا می‌توانیم
و حتی می‌توانیم بگوییم پاسخ درست چه بوده است.
پس پاسخ درست این بود:
و اینجا کمی پیچیده‌تر می‌شود — چگونه واقعاً پاسخ صحیح را بدست بیاوریم؟
ایده‌ای دارید؟
question.correctAnswerIndex خب، باید از استفاده کنیم.
و می‌توانیم حتی بیشتر پیش برویم.
در واقع می‌توانیم بنویسیم question.
پس اگر واقعاً بخواهید پاسخ واقعی را نمایش دهید و نه شمارهٔ گزینه، می‌توانید این‌طور بنویسید، حالا این
به این صورت خواهد شد.
یعنی question.answers
و سپس داخل براکت‌های مربعی: question.correctAnswerIndex.
پس در این خط آنچه می‌گوییم این است: به گزینه‌های answers نگاه کن.
پس از بین آن گزینه‌ها، موردی را انتخاب کن که ایندکس پاسخِ صحیح را دارد.
پس ایندکس پاسخ صحیح را می‌گیریم و همان گزینهٔ مربوطه را نمایش می‌دهیم.
correctAnswerIndex یعنی اگر answers برابر با یک باشد، برو بررسی کن کدام یک از آن ایندکس یک را دارد.
ایندکس یک یعنی برلین.
پس برلین را نمایش بده.
برای مثال می‌گوید پاسخ صحیح برلین بود.
و این تقریباً منطق راه‌اندازی آزمونِ ماست.
پس حالا از همهٔ سوالاتِ کوییز عبور خواهد کرد.
displayQuestion حالا در همین حین می‌توانیم مطمئن شویم که متد را خصوصی کنیم.
چرا؟
چون...
نیازی به نمایش سوال خارج از محدودهٔ آزمون نداریم.
کوییز ما همین کار را انجام می‌دهد.
Quiz کلاس کار نمایش سوالات را بر عهده دارد، بنابراین نیازی به در دسترس قرار دادن این متد برای کلاس‌های دیگر نیست،
کردمprivate به همین دلیل آن را
با این حال، اکنون مشخصاً باید برنامه‌مان را اینجا تغییر دهیم.
برنامه‌مانProgram.cs پس در فایل
myQuiz.displayQuestions حالا به جای اینکه startQuiz بگوییم، می‌توانیم را فراخوانی کنیم.
پس حالا می‌گوییم myQuiz.startQuiz.
حالا برای اینکه چند سوال داشته باشیم، باید سوالات بیشتری اضافه کنم.
برای مثال، می‌توانم چیزی مثل «دو بعلاوه دو چند است؟» بگویم.
و سپس گزینه‌های پاسخ می‌تواند چیزی مثل 3، 4، 5 و 6 باشد.
و index پاسخ صحیح نیز در این مورد برابر 1 است.
پس این تقریباً سوال دوم ماست.
حالا ببینیم آیا از یک سوال به سوال بعدی می‌رویم یا نه.
پس پایتخت آلمان چیست؟
و من می‌گویم برلین.
نمایش داده می‌شودCorrect پیغام
و دو بعلاوه دو چند است؟
و این‌بار من در واقع یک پاسخ اشتباه وارد می‌کنم.
پس من می‌گویم دو بعلاوه دو مساوی چهار است.
wrong و سپس پیغام نمایش داده می‌شود.
پاسخ صحیح چهار بود.
خب، آره؛ این یکی کمی گیج‌کننده است.
در این مورد خاص بهتر بود ایندکس را نمایش دهیم به جای اینکه...
پاسخ صحیح.
بذار دوباره اجرا کنم تا گیج نشی، باشه؟
wrong پس پایتخت آلمان چیست؟ من عدد 1 را وارد می‌کنم و پیغام نشان داده می‌شود.
پاسخ صحیح برلین بود.
پس اینجا می‌بینید که منطقی است.
حالا در این مورد دوم.
حالا می‌توانید با آن بازی کنید و مطابق سلیقه‌تان تغییرش دهید.
اما فرض کنید دو بعلاوه دو در واقع برابر با چهار است.
و من می‌گویم 3 یا 1.
نمایش داده می‌شود wrongهرچه باشد، پیغام
پاسخ صحیح چهار بود.
خب.
پس در این مورد خاص اگر من چهار وارد کنم، آنگاه این گیج‌کننده می‌شود.
اما اگر یک وارد کنم، سپس می‌گوید پاسخ چهار است.
یعنی منظورش این 'چهار' است و نه این 'چهار'.
همان‌طور که گفتم، می‌توانید یا ایندکس را نمایش دهید یا خودِ نتیجه را نمایش دهید.
اِم، جایی که باید این را تغییر دهید داخلِ کلاس در این بخشِ خاص است،quiz
جایی که یا خودِ پاسخ را نمایش می‌دهید یا ایندکس پاسخ را.
correctAnswerIndexپس می‌توانستید را بگویید اگر فقط ایندکس را استفاده می‌کردید، یا می‌توانید از پاسخ صحیح
استفاده کنید.
خوب.
پس تقریباً کار تمام است.
حالا فقط باید نتیجه را نمایش دهیم، باشه؟
پس فعلاً می‌توانیم سوالات را پشت‌سر بگذاریم و آنها را تمام کنیم.
اما به نقطه‌ای که کار تمام شده باشد نمی‌رسیم، به‌اصطلاح.
درسته.
پس اینجا مثل اینکه دارم برنامه را می‌بندم.
پس یک بستن مناسب برای برنامه‌مان وجود ندارد.
پس بیایید آن را در ویدئوی بعدی بسازیم.