1 00:00:00,000 --> 00:00:09,386 2 00:00:09,386 --> 00:00:11,332 >> ЗАМИЛА цхан: Хајде да забава са петнаест. 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 У инит, за инитиализе, заступамо одбор у 2Д цео низ. 17 00:00:55,150 --> 00:01:01,070 И ово је глобална променљива зове табла са ДИМЕНЗИЈЕ, и МАКС, 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 цео број д, који би могао бити мања од МАКС. 21 00:01:10,620 --> 00:01:14,660 Али, у Ц, не можете променити величину низове, па ви сте заглављени са 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 Сада, видели смо 1Д низове, али како 2Д низови раде? 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 Дакле, у функцији Фифтеен.ц, Програм траје улаз од корисника и 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 у жребу и у инит. 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 Моје име је Замила и то је ЦС50. 110 00:06:30,600 --> 00:06:37,632