1 00:00:00,000 --> 00:00:09,386 2 00:00:09,386 --> 00:00:11,332 >> ZAMYLA تشان: دعونا متعة مع خمسة عشر. 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 الحرف الأول، ورسم، ونقل، وفاز. 15 00:00:48,110 --> 00:00:50,340 أولا، دعونا معالجة الحرف الأول. 16 00:00:50,340 --> 00:00:55,150 في الحرف الأول، لتهيئة، التي نمثلها المجلس في مجموعة 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 >> عملك في الحرف الأول هو لملء قيم المجلس 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 الدولة بدءا من مجلس الإدارة، حيث متنها يمثل ط ي العنصر في 37 00:02:16,440 --> 00:02:19,380 ط الصفوف والأعمدة ي. 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 و False خلاف ذلك. 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 في التعادل والحرف الأول. 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