1 00:00:00,000 --> 00:00:09,386 2 00:00:09,386 --> 00:00:11,332 >> ZAMYLA CHAN: اجازه دهید که سرگرم کننده با پانزده. 3 00:00:11,332 --> 00:00:15,680 پانزده اولین بازی که شما دریافت می باشد برای پیاده سازی و آن را تعاملی. 4 00:00:15,680 --> 00:00:16,410 در حال حاضر، به نگرانی نیست. 5 00:00:16,410 --> 00:00:18,830 شما لازم نیست برای نوشتن تمام چیزی که خودتان. 6 00:00:18,830 --> 00:00:22,320 در کد توزیع نگاه کنید چون بسیاری از ساختار بازی در حال حاضر 7 00:00:22,320 --> 00:00:23,880 راه اندازی را برای شما. 8 00:00:23,880 --> 00:00:28,160 آن را می پذیرد و تجزیه خط فرمان بحث از کاربر و ایجاد 9 00:00:28,160 --> 00:00:31,230 هیئت مدیره در ورودی است. 10 00:00:31,230 --> 00:00:35,570 این چک اگر بازی را به دست آورد و خروجی پس از آن که کاربر برنده بازی. 11 00:00:35,570 --> 00:00:38,340 و بازی را به نفع خود، آن را می شود ورودی از کاربر و 12 00:00:38,340 --> 00:00:40,610 تابع انتقال می نامد. 13 00:00:40,610 --> 00:00:44,600 >> بنابراین ما در حال به اجرای چهار توابع برای بازی از پانزده، 14 00:00:44,600 --> 00:00:48,110 init انجام، قرعه کشی، حرکت، و به دست آورد. 15 00:00:48,110 --> 00:00:50,340 نخست، اجازه دهید به مقابله با init انجام. 16 00:00:50,340 --> 00:00:55,150 در init انجام، برای مقداردهی اولیه، ما را نمایندگی هیئت مدیره در یک آرایه عدد صحیح 2D. 17 00:00:55,150 --> 00:01:01,070 و این یک متغیر جهانی به نام است هیئت مدیره با ابعاد MAX، و MAX، 18 00:01:01,070 --> 00:01:03,880 حداکثر ابعاد از هیئت مدیره. 19 00:01:03,880 --> 00:01:07,310 در حال حاضر، بعد واقعی از هیئت مدیره توسط کاربر، ارائه شده در داده 20 00:01:07,310 --> 00:01:10,620 عدد صحیح د، که می تواند کمتر از MAX باشد. 21 00:01:10,620 --> 00:01:14,660 اما در C، شما می توانید آرایه های تغییر اندازه نیست، بنابراین شما با گیر 22 00:01:14,660 --> 00:01:16,730 که حداکثر ابعاد. 23 00:01:16,730 --> 00:01:19,870 >> کار شما در init انجام است به پر ارزش های هیئت مدیره 24 00:01:19,870 --> 00:01:21,860 با ارزش درست باشد. 25 00:01:21,860 --> 00:01:26,910 در حال حاضر، ما دیده ایم آرایه 1D، اما چگونه می توانم آرایه 2D کار می کند؟ 26 00:01:26,910 --> 00:01:30,985 این شاخص از سطر وجود دارد، صفر نمایه مثل همیشه، و پس از آن نیز از 27 00:01:30,985 --> 00:01:32,100 ستون. 28 00:01:32,100 --> 00:01:36,120 و شما شبکه خود را در در پر نزولی ارزش ها، درست مثل این. 29 00:01:36,120 --> 00:01:43,260 شبکه، 0، 0، 0 ردیف، ستون 0، 8، شبکه 0، 1 7 است. 30 00:01:43,260 --> 00:01:48,500 این است که برای یک مثال که در آن د، د کمی، 3 است. 31 00:01:48,500 --> 00:01:52,690 >> در حال حاضر، هیئت مدیره در پانزده نیز باید شامل کاشی خالی، اگر تا کنون 32 00:01:52,690 --> 00:01:54,280 با بازی فیزیکی بازی. 33 00:01:54,280 --> 00:01:59,210 اما، هیئت مدیره آرایهای از اعداد صحیح است، بنابراین تمام ارزش ها باید اعداد صحیح. 34 00:01:59,210 --> 00:02:06,950 پس از آن تا به شما برای تصمیم گیری یک عدد صحیح ارزش برای نمایش یک کاشی خالی است. 35 00:02:06,950 --> 00:02:10,460 به مقداردهی اولیه هیئت مدیره خود را، شما می توانید استفاده کنید ساختار حلقه حاوی 36 00:02:10,460 --> 00:02:16,440 با شروع دولت از هیئت مدیره، که در آن هیئت مدیره من J نشان دهنده عنصر در 37 00:02:16,440 --> 00:02:19,380 من سطر و ستون j. 38 00:02:19,380 --> 00:02:23,035 آنها در جهت نزولی شروع و، به یاد داشته باشید، که اگر تعداد از کاشی 39 00:02:23,035 --> 00:02:29,590 عجیب و غریب است، پس شما باید به تعویض محل از 2 و 1. 40 00:02:29,590 --> 00:02:33,790 بنابراین، ما باید ما هیئت مدیره مقداردهی اولیه. 41 00:02:33,790 --> 00:02:37,440 >> در حال حاضر، که ما شروع مجدد ما هیئت مدیره، از آن زمان به آن جلب شده است. 42 00:02:37,440 --> 00:02:41,260 قرعه کشی خواهد شد و وضعیت فعلی چاپ هیئت مدیره، اما شما باید مطمئن شوید 43 00:02:41,260 --> 00:02:44,260 چاپ کاشی در همان جهت که شما آنها را مقدار دهی اولیه شده است. 44 00:02:44,260 --> 00:02:47,300 و شما همچنین نیاز به فرمت اعداد خود را به درستی. 45 00:02:47,300 --> 00:02:51,700 از آنجا که ما ممکن است تک رقمی و رقم دو برابر، و سپس شما می خواهید 46 00:02:51,700 --> 00:02:54,540 قبل از یک فضای خالی چاپ هر شماره رقم تنها. 47 00:02:54,540 --> 00:03:00,150 شما استفاده از آن با استفاده از حفره یا سوراخ -. 48 00:03:00,150 --> 00:03:02,550 >> اما به یاد داشته باشید فضای خالی است. 49 00:03:02,550 --> 00:03:05,970 ما نمی خواهیم به چاپ تعداد واقعی که ما انتخاب کرده ایم برای نشان دادن 50 00:03:05,970 --> 00:03:10,410 که فضای خالی در هیئت مدیره، اما ما نیز نمی خواهید به چاپ هیچ چیز در همه. 51 00:03:10,410 --> 00:03:15,310 پس چه می توانید انجام دهید این است که تعریف یک نماد و یا شخصیت به نمایندگی از 52 00:03:15,310 --> 00:03:17,050 کاشی خالی است. 53 00:03:17,050 --> 00:03:21,030 در مثال قبلی من انتخاب کردهام تاکید، و سپس شما فقط چاپ 54 00:03:21,030 --> 00:03:26,970 که هر زمان که شما در رسیدن به خالی فضا در عملکرد قرعه کشی خود را. 55 00:03:26,970 --> 00:03:29,850 >> پس قرعه کشی برای حلقه های تو در تو. 56 00:03:29,850 --> 00:03:31,150 چیزی شبیه به این. 57 00:03:31,150 --> 00:03:35,660 برای هر سطر، و پس از آن برای هر مقدار در ردیف، شما به چاپ 58 00:03:35,660 --> 00:03:36,940 ارزش در این فضا. 59 00:03:36,940 --> 00:03:39,470 هنگامی که تمام ارزش های شما چاپ کرده ام در ردیف، و سپس شما 60 00:03:39,470 --> 00:03:41,180 می توانید یک خط جدید چاپ کنید. 61 00:03:41,180 --> 00:03:47,730 به یاد داشته باشید که برای قرعه کشی شما تابع باید اکو یا آینه منظور 62 00:03:47,730 --> 00:03:48,980 در تابع مقداردهی اولیه خود را. 63 00:03:48,980 --> 00:03:51,290 64 00:03:51,290 --> 00:03:55,160 >> حالا که شما در هیئت مدیره و مقدار اولیه که شما آن را رسم کرده ایم، آن هم به اجازه 65 00:03:55,160 --> 00:03:58,500 کاربر آن را ویرایش کنید و حرکت خود را. 66 00:03:58,500 --> 00:04:03,840 بنابراین در تابع Fifteen.c، برنامه طول می کشد ورودی از کاربر و 67 00:04:03,840 --> 00:04:07,690 پس از آن، تابع حرکت، عبور در تعدادی از کاشی که 68 00:04:07,690 --> 00:04:09,270 کاربر می خواهد به حرکت می کند. 69 00:04:09,270 --> 00:04:10,380 در حال حاضر، مراقب باشید. 70 00:04:10,380 --> 00:04:14,200 این تعداد واقعی از کاشی است و نه جایگاه واقعی خود را. 71 00:04:14,200 --> 00:04:19,010 بنابراین، شما نیاز به جستجو برای کاشی است موقعیت می دانم که در آن است. 72 00:04:19,010 --> 00:04:23,440 >> حالا شما باید فقط اجازه می دهد کاربر به یک حرکت اگر آن را قانونی. 73 00:04:23,440 --> 00:04:27,910 حرکت قانونی هر کاشی است که مجاور به کاشی خالی است. 74 00:04:27,910 --> 00:04:32,020 این بدان معناست که در بالا و پایین، به سمت چپ و به سمت راست. 75 00:04:32,020 --> 00:04:34,680 بنابراین شما باید بدانید که در آن کاشی خالی نیز هست. 76 00:04:34,680 --> 00:04:39,720 در حال حاضر، برای هر حرکت شما در جستجوی کاشی کاربران، اما آن را احتمالا 77 00:04:39,720 --> 00:04:43,030 بهترین برای جستجوی کاشی خالی هر زمان دلیل این که شما در حال انجام آن 78 00:04:43,030 --> 00:04:45,270 در هر زمان تنها کاربر می خواهد به حرکت می کند. 79 00:04:45,270 --> 00:04:50,300 بنابراین، به جای آن، بهتر است به خاطر داشته باشید که در آن کاشی خالی است با استفاده از 80 00:04:50,300 --> 00:04:52,650 و همچنین متغیر نام برد. 81 00:04:52,650 --> 00:04:55,970 بنابراین هنگامی که شما اجازه می دهد تا کاربر را به خود حرکت می کند، آنها به خوبی در خود 82 00:04:55,970 --> 00:04:59,700 راه برای برنده شدن در بازی از پانزده. 83 00:04:59,700 --> 00:05:03,940 >> برای برنده شدن در بازی از پانزده، کاشی باید در یک جهت خاص، و 84 00:05:03,940 --> 00:05:06,970 تابع به دست آورد که آیا چک بازی برنده شده است. 85 00:05:06,970 --> 00:05:10,290 این درست میشود اگر بازی را به دست آورد و کاشی را در جهت درست است، 86 00:05:10,290 --> 00:05:12,210 و غلط در غیر این صورت. 87 00:05:12,210 --> 00:05:15,830 پس از بازی پانزده، کاشی را به نفع خود باید با نظم، با 88 00:05:15,830 --> 00:05:19,230 کاشی خالی در گوشه پایین سمت راست. 89 00:05:19,230 --> 00:05:23,630 پس چگونه شما بررسی کنید که آیا کاربر تا به هیئت مدیره را به سمت راست منتقل شد 90 00:05:23,630 --> 00:05:25,010 گرایش؟ 91 00:05:25,010 --> 00:05:29,200 >> خوب، شما بیش از هیئت مدیره تکرار و بررسی ارزش مطمئن شوید که 92 00:05:29,200 --> 00:05:30,550 آنها در جای مناسب هستید. 93 00:05:30,550 --> 00:05:33,910 برای این کار، شما می توانید تو در تو استفاده برای حلقه درست مثل شما بود 94 00:05:33,910 --> 00:05:36,520 در قرعه کشی و در init انجام. 95 00:05:36,520 --> 00:05:40,430 یک زن و شوهر از راه برای بررسی وجود دارد و اعتبار که آیا در هیئت مدیره است 96 00:05:40,430 --> 00:05:42,860 درست و برنده شکل گیری، هر چند. 97 00:05:42,860 --> 00:05:47,330 اگر شما از چپ به راست، شروع از سطر بالا به پایین، و سپس هر 98 00:05:47,330 --> 00:05:50,590 تعداد باید بزرگتر از است از گذشته شد. 99 00:05:50,590 --> 00:05:54,530 مراقب باشید در مورد آنچه شما ارزش قائل ام انتخاب برای کاشی خالی خود را هر چند. 100 00:05:54,530 --> 00:05:59,250 >> یا شما می توانید از متغیر شمارنده به استفاده از اطمینان حاصل شود که هر مقدار در محل است، اگر 101 00:05:59,250 --> 00:06:03,660 شما می آیند تا با نوعی از فرمول برای نشان دادن این. 102 00:06:03,660 --> 00:06:06,250 پس لذت ببرید تجربه با ریاضی. 103 00:06:06,250 --> 00:06:10,930 هنگامی که شما با یک راه، بازگشت آمده ام درست زمانی که کاربر بازی به دست آورد. 104 00:06:10,930 --> 00:06:15,950 اما اگر هر مقدار نادرست، بازگشت است غلط، کاربر را به ادامه حرکت 105 00:06:15,950 --> 00:06:18,440 چرا که آنها بازی کرده اند به دست آورد. 106 00:06:18,440 --> 00:06:23,030 به محض این که چک شما پیاده سازی و همراه با مقداردهی اولیه، قرعه کشی، و حرکت، 107 00:06:23,030 --> 00:06:25,110 شما بازی را از پانزده به پایان رسید. 108 00:06:25,110 --> 00:06:27,620 تبریک می گویم و بازی سرگرم کننده است. 109 00:06:27,620 --> 00:06:30,600 نام من Zamyla است و این CS50 است. 110 00:06:30,600 --> 00:06:37,632