WEBVTT

00:00.140 --> 00:00.950
خوش آمدید دوباره.

00:00.950 --> 00:05.600
در این ویدیو می‌خواهیم یک سؤال و پاسخ‌های آن را نمایش دهیم.

00:05.600 --> 00:12.680
کاربر می‌تواند پاسخ درست یا هر پاسخی را وارد کند و سپس به سؤال بعدی برود.

00:12.680 --> 00:18.890
برای این کار، متدی می‌سازیم که شروع آزمون و مدیریت سؤالات را بر عهده دارد.

00:18.890 --> 00:22.760
این متد همچنین سؤالات و پاسخ‌ها را نمایش می‌دهد.

00:22.760 --> 00:27.590
public void startQuizپس این متد را به صورت 
 تعریف می‌کنم.

00:27.590 --> 00:34.370
این متد مسئول نمایش چیزی مانند خوش آمدید به آزمون خواهد بود.

00:34.370 --> 00:37.010
خوش آمدید به آزمون.

00:37.010 --> 00:43.490
سپس باید بدانیم که در کدام سؤال هستیم.

00:43.490 --> 00:45.890
پس می‌گوییم که از سؤال یک شروع می‌کنیم.

00:45.890 --> 00:50.570
این برای نمایش شماره سؤالات استفاده می‌شود.

00:50.570 --> 00:54.980
ایده این است که شماره سوال فعلی را نمایش دهیم.

00:54.980 --> 00:59.960
for eachسپس نیاز به یک حلقه 
 داریم تا از روی همه سوالات عبور کند.

00:59.960 --> 01:03.710
questionپس می‌نویسیم: 
، درست است؟questions در 

01:03.710 --> 01:09.080
questionsاین حلقه هر سوال را در آرایه 
 بررسی می‌کند.

01:09.230 --> 01:10.370
همین سوال‌ها.

01:10.370 --> 01:16.100
سپس شماره سوال و خود سوال نمایش داده می‌شود.

01:16.100 --> 01:19.010
اینجا فقط می‌گویم سوال

01:19.010 --> 01:22.550
و سپس شماره سوال فعلی را نمایش می‌دهیم.

 
01:22.550 --> 01:25.010
این فقط برای نمایش شماره سوال است.

01:25.010 --> 01:28.040
و من بلافاصله شماره سوال را افزایش می‌دهم.

01:28.040 --> 01:31.610
در این لحظه این سوال شماره یک است.

01:31.610 --> 01:35.660
و در تکرار بعدی حلقه، سوال شماره دو خواهد بود.

01:35.660 --> 01:39.830
حالا می‌توانیم سوال را نمایش دهیم.

01:39.830 --> 01:41.480
display questionپس تابع 
 را صدا می‌زنیم.

01:41.480 --> 01:43.400
کدام سوال را می‌خواهیم نمایش دهیم؟

01:43.400 --> 01:44.810
این همان سوال است.

01:44.810 --> 01:49.250
همان مورد از تکرار حلقه، هر سوالی که در حال حاضر داریم.

01:49.250 --> 01:50.750
 for eachاین کاری است که این حلقه
 انجام می‌دهد.

01:50.750 --> 01:51.260
درست است.

01:51.260 --> 01:55.220
و سپس می‌توانیم انتخاب کاربر را بگیریم.

01:55.220 --> 01:59.990
int user choiceپس 
خواهد بود.get user choice برابر 

01:59.990 --> 02:03.260
یعنی از متد انتخاب کاربر استفاده می‌کنیم.

02:03.260 --> 02:05.090
اینجا است.get user choiceهمین 
 
02:05.090 --> 02:10.940
به طور خلاصه می‌گوییم: انتخاب کاربر را بده، مثل کاری که در 
 انجام دادیم display question

02:10.940 --> 02:13.160
همانطور که می‌بینید، اینجا هم انتخاب کاربر را گرفتیم.

02:13.160 --> 02:20.750
بنابراین می‌توانیم این کد قدیمی را حذف کنیم، چون منطق بهتری برای این کار داریم.

02:20.750 --> 02:26.480
for eachدر این حلقه 
 بررسی می‌کنیم که آیا انتخاب کاربر درست است یا خیر.

02:26.480 --> 02:28.610
یعنی question.isCorrectAnswer با user choice.

02:28.610 --> 02:36.080
نکته جالب این است که حالا از متدی که ساخته‌ایم استفاده می‌کنیم، متدی بولی که بررسی می‌کند.

02:36.080 --> 02:40.520
 آیا انتخاب وارد شده صحیح است یا نه

02:40.760 --> 02:43.940
 است که اکنون استفاده می‌کنیمcorrect answerاین متد همان 

02:43.940 --> 02:46.580
question.isCorrectAnswerپس داریم از 
 استفاده می‌کنیم و انتخاب کاربر را به آن می‌دهیم.

02:46.580 --> 02:48.140
وما انتخاب کاربر رو بهش می دیم 

02:48.140 --> 02:49.910
getUserChoice پس در متد .

02:49.910 --> 02:54.530
و این متد مطمئن می‌شود که انتخاب کاربر در واقع یک گزینهٔ معتبر باشد.

02:54.530 --> 03:01.640
و اینجا بررسی می‌کنیم که آیا این گزینهٔ معتبر، پاسخ درست بوده است یا نه.

03:01.640 --> 03:04.790
و اگر این درست باشد — چون این پاسخِ صحیح است.

03:04.790 --> 03:07.100
bool اگر نشان‌گر ماوس را روی آن ببرید می‌بینید که یک مقدار 
 برمی‌گرداند.

03:07.100 --> 03:08.390
همان چیزی است که اینجا تعریف کرده‌ایم.

03:08.390 --> 03:10.970
برمی‌گرداندtrue یا false پس مقدار 
 
03:10.970 --> 03:14.450
correct پس اگر پاسخ درست بود، کلمهٔ 
 را نمایش می‌دهیم.

03:14.450 --> 03:17.660
(CW) پس اینجا 
را نمایش می‌دهیمcorrect و ما 

03:17.660 --> 03:23.270
wrong و اگر نادرست بودیم، می‌توانیم 
 را نمایش دهیم.

03:23.270 --> 03:25.640
برای مثال — چندان دوستانه نیست.

03:25.670 --> 03:26.510
اما بله.

03:26.510 --> 03:28.160
را نمایش دهیم.wrong پس اینجا می‌توانیم 

03:28.160 --> 03:31.550
و حتی می‌توانیم بگوییم پاسخ درست چه بوده است.

03:31.550 --> 03:35.630
پس پاسخ درست این بود:

03:35.630 --> 03:43.310
و اینجا کمی پیچیده‌تر می‌شود — چگونه واقعاً پاسخ صحیح را بدست بیاوریم؟

03:43.310 --> 03:44.360
ایده‌ای دارید؟

03:44.420 --> 03:50.420
question.correctAnswerIndex خب، باید از 
 استفاده کنیم.

03:50.420 --> 03:53.390
و می‌توانیم حتی بیشتر پیش برویم.

03:53.390 --> 03:55.400
در واقع می‌توانیم بنویسیم question.

03:55.550 --> 04:02.300
پس اگر واقعاً بخواهید پاسخ واقعی را نمایش دهید و نه شمارهٔ گزینه، می‌توانید این‌طور بنویسید، حالا این

04:02.300 --> 04:04.040
به این صورت خواهد شد.

04:04.040 --> 04:08.330
یعنی question.answers

04:08.330 --> 04:12.200
و سپس داخل براکت‌های مربعی: question.correctAnswerIndex.

04:12.200 --> 04:16.520
پس در این خط آنچه می‌گوییم این است: به گزینه‌های answers نگاه کن.

04:16.520 --> 04:22.670
پس از بین آن گزینه‌ها، موردی را انتخاب کن که ایندکس پاسخِ صحیح را دارد.

04:22.670 --> 04:28.310
پس ایندکس پاسخ صحیح را می‌گیریم و همان گزینهٔ مربوطه را نمایش می‌دهیم.

04:28.310 --> 04:36.710
correctAnswerIndex یعنی اگر 
answers برابر با یک باشد، برو بررسی کن کدام یک از آن 
 ایندکس یک را دارد.

04:36.710 --> 04:38.870
ایندکس یک یعنی برلین.

04:38.870 --> 04:40.100
پس برلین را نمایش بده.

04:40.100 --> 04:43.850
برای مثال می‌گوید پاسخ صحیح برلین بود.

04:43.850 --> 04:48.440
و این تقریباً منطق راه‌اندازی آزمونِ ماست.

04:48.440 --> 04:51.380
پس حالا از همهٔ سوالاتِ کوییز عبور خواهد کرد.

04:51.380 --> 04:57.860
displayQuestion حالا در همین حین می‌توانیم مطمئن شویم که متد 
 را خصوصی کنیم.

04:57.860 --> 04:58.490
چرا؟

04:58.490 --> 04:59.510
چون...

04:59.630 --> 05:02.420
نیازی به نمایش سوال خارج از محدودهٔ آزمون نداریم.

05:02.450 --> 05:04.820
کوییز ما همین کار را انجام می‌دهد.

05:04.820 --> 05:12.920
Quiz کلاس 
 کار نمایش سوالات را بر عهده دارد، بنابراین نیازی به در دسترس قرار دادن این متد برای کلاس‌های دیگر نیست،

05:12.920 --> 05:14.690
 کردمprivate به همین دلیل آن را
 
05:14.720 --> 05:19.820
با این حال، اکنون مشخصاً باید برنامه‌مان را اینجا تغییر دهیم.

05:19.820 --> 05:22.280
 برنامه‌مانProgram.cs پس در فایل

05:22.280 --> 05:27.920
myQuiz.displayQuestions حالا به جای اینکه 
startQuiz بگوییم، می‌توانیم 
 را فراخوانی کنیم.

05:27.950 --> 05:30.800
پس حالا می‌گوییم myQuiz.startQuiz.

05:30.830 --> 05:35.720
حالا برای اینکه چند سوال داشته باشیم، باید سوالات بیشتری اضافه کنم.

05:35.720 --> 05:41.420
برای مثال، می‌توانم چیزی مثل «دو بعلاوه دو چند است؟» بگویم.

05:41.420 --> 05:48.260
و سپس گزینه‌های پاسخ می‌تواند چیزی مثل 3، 4، 5 و 6 باشد.

05:48.260 --> 05:53.270
و index پاسخ صحیح نیز در این مورد برابر 1 است.

05:53.270 --> 05:56.990
پس این تقریباً سوال دوم ماست.

05:56.990 --> 06:02.150
حالا ببینیم آیا از یک سوال به سوال بعدی می‌رویم یا نه.

06:02.150 --> 06:04.190
پس پایتخت آلمان چیست؟

06:04.250 --> 06:06.230
و من می‌گویم برلین.

06:06.230 --> 06:07.640
نمایش داده می‌شودCorrect پیغام 

06:07.640 --> 06:09.440
و دو بعلاوه دو چند است؟

06:09.440 --> 06:12.980
و این‌بار من در واقع یک پاسخ اشتباه وارد می‌کنم.

06:12.980 --> 06:15.500
پس من می‌گویم دو بعلاوه دو مساوی چهار است.

06:15.500 --> 06:17.150
wrong و سپس پیغام 
 نمایش داده می‌شود.

06:17.150 --> 06:19.100
پاسخ صحیح چهار بود.

06:20.000 --> 06:21.800
خب، آره؛ این یکی کمی گیج‌کننده است.

06:21.800 --> 06:29.480
در این مورد خاص بهتر بود ایندکس را نمایش دهیم به جای اینکه...

06:29.480 --> 06:30.680
پاسخ صحیح.

06:30.680 --> 06:34.580
بذار دوباره اجرا کنم تا گیج نشی، باشه؟

06:34.580 --> 06:38.600
wrong پس پایتخت آلمان چیست؟ من عدد 1 را وارد می‌کنم و پیغام 
 نشان داده می‌شود.

06:38.600 --> 06:40.190
پاسخ صحیح برلین بود.

06:40.190 --> 06:42.200
پس اینجا می‌بینید که منطقی است.

06:42.200 --> 06:44.450
حالا در این مورد دوم.

06:44.450 --> 06:46.640
حالا می‌توانید با آن بازی کنید و مطابق سلیقه‌تان تغییرش دهید.

06:46.640 --> 06:49.280
اما فرض کنید دو بعلاوه دو در واقع برابر با چهار است.

06:49.280 --> 06:52.220
و من می‌گویم 3 یا 1.

06:52.220 --> 06:53.360
نمایش داده می‌شود wrongهرچه باشد، پیغام 
 
06:53.360 --> 06:54.890
پاسخ صحیح چهار بود.

06:54.890 --> 06:55.430
خب.

06:55.430 --> 06:58.790
پس در این مورد خاص اگر من چهار وارد کنم، آنگاه این گیج‌کننده می‌شود.

06:58.790 --> 07:01.820
اما اگر یک وارد کنم، سپس می‌گوید پاسخ چهار است.

07:01.820 --> 07:06.110
یعنی منظورش این 'چهار' است و نه این 'چهار'.

07:06.170 --> 07:10.670
همان‌طور که گفتم، می‌توانید یا ایندکس را نمایش دهید یا خودِ نتیجه را نمایش دهید.

07:10.790 --> 07:17.870
اِم، جایی که باید این را تغییر دهید داخلِ کلاس 
 در این بخشِ خاص است،quiz

07:17.870 --> 07:24.410
جایی که یا خودِ پاسخ را نمایش می‌دهید یا ایندکس پاسخ را.

07:24.410 --> 07:31.820
correctAnswerIndexپس می‌توانستید 
 را بگویید اگر فقط ایندکس را استفاده می‌کردید، یا می‌توانید از پاسخ صحیح

07:31.820 --> 07:32.450
استفاده کنید.

07:32.450 --> 07:33.380
خوب.

07:33.380 --> 07:35.150
پس تقریباً کار تمام است.

07:35.150 --> 07:38.630
حالا فقط باید نتیجه را نمایش دهیم، باشه؟

07:38.630 --> 07:42.530
پس فعلاً می‌توانیم سوالات را پشت‌سر بگذاریم و آنها را تمام کنیم.

07:42.530 --> 07:46.850
اما به نقطه‌ای که کار تمام شده باشد نمی‌رسیم، به‌اصطلاح.

07:46.850 --> 07:47.120
درسته.

07:47.120 --> 07:49.400
پس اینجا مثل اینکه دارم برنامه را می‌بندم.

07:49.400 --> 07:53.690
پس یک بستن مناسب برای برنامه‌مان وجود ندارد.

07:53.690 --> 07:55.880
پس بیایید آن را در ویدئوی بعدی بسازیم.

