1 00:00:00,000 --> 00:00:09,386 2 00:00:09,386 --> 00:00:11,332 >> ZAMYLA CHAN: Við skulum hafa gaman með fimmtán. 3 00:00:11,332 --> 00:00:15,680 Fimmtán er fyrsti leikurinn sem þú færð að hrinda í framkvæmd og það er gagnvirkt. 4 00:00:15,680 --> 00:00:16,410 Nú, ekki að hafa áhyggjur. 5 00:00:16,410 --> 00:00:18,830 Þú þarft ekki að skrifa það heild hlutur sjálfur. 6 00:00:18,830 --> 00:00:22,320 Líta á dreifingu kóða vegna þess að mikið af leiknum uppbygging er nú þegar 7 00:00:22,320 --> 00:00:23,880 sett upp fyrir þig. 8 00:00:23,880 --> 00:00:28,160 Það tekur og flokka a stjórn lína rök frá notanda og skapar 9 00:00:28,160 --> 00:00:31,230 borð byggt á þeirri inntak. 10 00:00:31,230 --> 00:00:35,570 Það eftirlit ef leikurinn er unnið og hættir Þegar notandi er vann leikinn. 11 00:00:35,570 --> 00:00:38,340 Og til að vinna leikinn, fær það inntak frá notanda og 12 00:00:38,340 --> 00:00:40,610 kallar Færa virka. 13 00:00:40,610 --> 00:00:44,600 >> Þannig að við erum að fara að vera framkvæmd fjögur virka fyrir leikinn fimmtán, 14 00:00:44,600 --> 00:00:48,110 init, teikna, færa, og vann. 15 00:00:48,110 --> 00:00:50,340 Í fyrsta lagi skulum takast init. 16 00:00:50,340 --> 00:00:55,150 Í init, fyrir frumstilla, fulltrúi við stjórnin í 2D heiltölu fylki. 17 00:00:55,150 --> 00:01:01,070 Og þetta er alþjóðlegt breytu sem heitir borð með mál max, og Max, 18 00:01:01,070 --> 00:01:03,880 hámarks stærð af the borð. 19 00:01:03,880 --> 00:01:07,310 Nú, í raun vídd stjórnar er gefið af notanda, fulltrúa í 20 00:01:07,310 --> 00:01:10,620 heiltölunni d, sem gæti vera minna en MAX. 21 00:01:10,620 --> 00:01:14,660 En, í C, þú getur ekki breytt stærð fylki, svo þú ert fastur með 22 00:01:14,660 --> 00:01:16,730 að hámarks vídd. 23 00:01:16,730 --> 00:01:19,870 >> Starf þitt í init er að byggja að gildin fyrir borð 24 00:01:19,870 --> 00:01:21,860 með rétt gildi. 25 00:01:21,860 --> 00:01:26,910 Nú höfum við séð 1D fylki, en hvernig 2D fylki vinna? 26 00:01:26,910 --> 00:01:30,985 Það er vísitölu röðinni, núll verðtryggð eins og alltaf, og þá einnig af 27 00:01:30,985 --> 00:01:32,100 dálkinum. 28 00:01:32,100 --> 00:01:36,120 Og þú munt fylla rist þína í í lækkandi gildi, rétt eins og þetta. 29 00:01:36,120 --> 00:01:43,260 Tafla, 0, 0, röð 0, dálkur 0, er 8, Tafla 0, 1 er 7. 30 00:01:43,260 --> 00:01:48,500 Þetta er til að tekið er dæmi þar d, lítið D, er 3. 31 00:01:48,500 --> 00:01:52,690 >> Nú er stjórn í fimmtán verður einnig innihalda auða flísar, ef þú hefur einhvern tíma 32 00:01:52,690 --> 00:01:54,280 spilað með líkamlega leik. 33 00:01:54,280 --> 00:01:59,210 En, borð er heiltala array, svo Öll gildi verða að vera heiltölur. 34 00:01:59,210 --> 00:02:06,950 Svo það er komið að þér að ákveða heiltölu gildi til að tákna auðan flísar. 35 00:02:06,950 --> 00:02:10,460 Að frumstilla borð þitt, þú getur notað lykkja mannvirki að innihalda 36 00:02:10,460 --> 00:02:16,440 byrja ástand stjórnar, þar borð Ég j táknar þáttur í 37 00:02:16,440 --> 00:02:19,380 róður i og dálki j. 38 00:02:19,380 --> 00:02:23,035 Þeir byrja í röð og, muna, að ef fjöldi flísum 39 00:02:23,035 --> 00:02:29,590 er skrýtið, þá þú ert að fara til verða að skipta um staðsetningu 2 og 1.. 40 00:02:29,590 --> 00:02:33,790 Þannig að það höfum við okkar frumstilla borð. 41 00:02:33,790 --> 00:02:37,440 >> Nú, þegar við höfum frumstilla okkar borð, er kominn tími til að draga það. 42 00:02:37,440 --> 00:02:41,260 Drátturinn mun prenta núverandi ástand á borð, en þú þarft að ganga úr skugga um 43 00:02:41,260 --> 00:02:44,260 að prenta flísar í sömu röð að þú hafir frumstilla þá. 44 00:02:44,260 --> 00:02:47,300 Og þú þarft líka að forsníða númer þitt rétt. 45 00:02:47,300 --> 00:02:51,700 Þar sem við gætum hafa einn tölustafur og tveggja stafa tölu, þá þú vilt 46 00:02:51,700 --> 00:02:54,540 prenta inn bil áður allir einn stafa númer. 47 00:02:54,540 --> 00:03:00,150 Þú notar það með því að nota sem tákn -. 48 00:03:00,150 --> 00:03:02,550 >> En muna autt pláss okkar. 49 00:03:02,550 --> 00:03:05,970 Við viljum ekki að prenta raunverulegan fjölda sem við höfum valið til að tákna 50 00:03:05,970 --> 00:03:10,410 sem autt pláss í borð, en við líka vil ekki að prenta neitt. 51 00:03:10,410 --> 00:03:15,310 Svo er það sem þú getur gert til að skilgreina tákn eða eðli til að tákna 52 00:03:15,310 --> 00:03:17,050 autt flísar. 53 00:03:17,050 --> 00:03:21,030 Í fyrri dæmum sem ég hef valið að undirstrika, og þá prenta bara 54 00:03:21,030 --> 00:03:26,970 að þegar þú nærð í auða pláss í jafntefli virka. 55 00:03:26,970 --> 00:03:29,850 >> Svo draga mun hafa orpið fyrir lykkjur. 56 00:03:29,850 --> 00:03:31,150 Eitthvað eins og þetta. 57 00:03:31,150 --> 00:03:35,660 Fyrir hverja röð, og þá fyrir hvert gildi í röðinni, ert þú að fara að prenta 58 00:03:35,660 --> 00:03:36,940 gildi í þessu rými. 59 00:03:36,940 --> 00:03:39,470 Þegar þú hefur prentað öll gildin í röð, þá er 60 00:03:39,470 --> 00:03:41,180 Hægt er að prenta nýja línu. 61 00:03:41,180 --> 00:03:47,730 Mundu að röð fyrir jafntefli þinni aðgerð verður echo eða spegill röð 62 00:03:47,730 --> 00:03:48,980 í frumstilla virka. 63 00:03:48,980 --> 00:03:51,290 64 00:03:51,290 --> 00:03:55,160 >> Nú þegar þú frumstilla borð og að þú hafir dregið hana, það er kominn tími til að láta 65 00:03:55,160 --> 00:03:58,500 notandinn breyta henni og gera hreyfingar þeirra. 66 00:03:58,500 --> 00:04:03,840 Svo í Fifteen.c virka, Dagskráin tekur inntak frá notanda og 67 00:04:03,840 --> 00:04:07,690 þá kallar Ferðinni virka, liggur í fjölda flísar til þess að 68 00:04:07,690 --> 00:04:09,270 notandi vill færa. 69 00:04:09,270 --> 00:04:10,380 Nú, vera varkár. 70 00:04:10,380 --> 00:04:14,200 Þetta er í raun númer flísar og ekki raunverulegt stöðu sína. 71 00:04:14,200 --> 00:04:19,010 Svo, þú þarft að leita að flísar er stöðu til að vita hvar hún er. 72 00:04:19,010 --> 00:04:23,440 >> Nú ættir þú aðeins að leyfa notandanum til að færa ef það er löglegt. 73 00:04:23,440 --> 00:04:27,910 A löglegur færa er einhver flísar sem er við hliðina á auðu flísar. 74 00:04:27,910 --> 00:04:32,020 Það þýðir að ofan og að neðan, til að vinstri og til hægri. 75 00:04:32,020 --> 00:04:34,680 Svo þú þarft að vita hvar auða flísar er eins og heilbrigður. 76 00:04:34,680 --> 00:04:39,720 Nú, fyrir hverri hreyfingu sem þú ert að leita að sem notendur flísar, en það er líklega 77 00:04:39,720 --> 00:04:43,030 ekki best að leita að eyða flísar í hvert skipti vegna þess að þú ert að gera það 78 00:04:43,030 --> 00:04:45,270 hvert einasta skipti sem notandi vill færa. 79 00:04:45,270 --> 00:04:50,300 Svo, í staðinn, það er best að muna hvar auða flísar er með einhverja 80 00:04:50,300 --> 00:04:52,650 vel heitir breytur. 81 00:04:52,650 --> 00:04:55,970 Svo þegar þú leyfa notanda að gera sína færist, þeir eru vel á sínum 82 00:04:55,970 --> 00:04:59,700 leið til að vinna leikinn fimmtán. 83 00:04:59,700 --> 00:05:03,940 >> Til að vinna leikinn fimmtán, flísar verða að vera í ákveðinni röð, og 84 00:05:03,940 --> 00:05:06,970 sem vann virka tékka hvort leikurinn er unnið. 85 00:05:06,970 --> 00:05:10,290 Það skilar True ef leikurinn er unnið og flísar eru í réttri röð, 86 00:05:10,290 --> 00:05:12,210 og ósönn annars. 87 00:05:12,210 --> 00:05:15,830 Svo að vinna leikinn í fimmtán, flísar að vera vaxandi röð, með 88 00:05:15,830 --> 00:05:19,230 autt flísar á neðst í hægra horninu. 89 00:05:19,230 --> 00:05:23,630 Svo hvernig gera skrá þig hvort notandi hefur flutt borð í hægri 90 00:05:23,630 --> 00:05:25,010 stefnumörkun? 91 00:05:25,010 --> 00:05:29,200 >> Jæja, þú iterate yfir borð og athuga gildi til að tryggja að 92 00:05:29,200 --> 00:05:30,550 þeir eru á réttum stað. 93 00:05:30,550 --> 00:05:33,910 Til að gera þetta, getur þú notað hreiður fyrir lykkjur bara eins og þú gerðir 94 00:05:33,910 --> 00:05:36,520 í jafntefli og í init. 95 00:05:36,520 --> 00:05:40,430 There ert a par af leiðir að athuga og sannreyna hvort stjórnin er 96 00:05:40,430 --> 00:05:42,860 rétt og aðlaðandi myndun, þó. 97 00:05:42,860 --> 00:05:47,330 Ef þú ferð frá vinstri til hægri og hefst úr efstu röðinni niður, síðan á 98 00:05:47,330 --> 00:05:50,590 númerið verður að vera hærri en fyrri einn. 99 00:05:50,590 --> 00:05:54,530 Verið varkár um hvaða gildi þú hefur valið fyrir auða flísar þó. 100 00:05:54,530 --> 00:05:59,250 >> Eða þú getur notað gegn breytu í sjá til þess að hvert gildi er til staðar, ef 101 00:05:59,250 --> 00:06:03,660 þú kemur upp með einhvers konar formúlu til að tákna þetta. 102 00:06:03,660 --> 00:06:06,250 Svo hafa gaman að gera tilraunir með stærðfræði. 103 00:06:06,250 --> 00:06:10,930 Þegar þú hefur komið upp með a vegur, aftur True þegar notandi hefur unnið leikinn. 104 00:06:10,930 --> 00:06:15,950 En ef einhver gildi er rangt, aftur False, sem notandinn þarf að halda áfram að færa 105 00:06:15,950 --> 00:06:18,440 vegna þess að þeir hafa ekki unnið leikinn. 106 00:06:18,440 --> 00:06:23,030 Þegar þú framkvæma þessa ávísun og, ásamt með frumstilla, teikna, og færa, 107 00:06:23,030 --> 00:06:25,110 þú hefur lokið leik fimmtán. 108 00:06:25,110 --> 00:06:27,620 Til hamingju og hafa gaman að spila. 109 00:06:27,620 --> 00:06:30,600 Mitt nafn er Zamyla og þetta er CS50. 110 00:06:30,600 --> 00:06:37,632