ROB BOWDEN: Hæ. Ég er Rob og ég vona þín leikur fyrir leik 15. Nú, það eru fjórir aðgerðir sem þú þarft að innleiða í þessari áætlun - init, teikna, færa, og vann. Svo skulum við líta á init. Hér sjáum við það fyrsta sem við erum að fara að gera er að lýsa yfir breytu heitir gegn. Það er að fara að frumstilla til d sinnum D mínus 1. Mundu að d er vídd í stjórn okkar. Hvernig init er að fara að vinna er það er að fara að iterate yfir umræðuborðinu og við erum að fara að byrja efst til vinstri. Og við skulum bara segja að við hafa 4 af 4 borð. Svo efst til vinstri við erum að fara að segja er 15. Og þá erum við bara að fara að telja gegnum stjórnum, segja 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, og svo framvegis. Þannig að efsta vinstri, búast við að vera d sinnum D mínus 1, sem á 4 með því 4 Málið er að fara að vera 16 mínus 1, sem er rétt 15. Og nú er hér þar sem við erum að fara að iterate yfir umræðuborðinu. Og við erum að fara að setja hverja stöðu í borð til núvirði gegn okkar, og þá gegn er að fara til þess að telja, svo að næsta stöðu við náum er að fara að hafa gegn að vera einn minna en fyrri stöðu. Þannig að við þurftum í upphafi 15 og lækka gegn. Svo þá erum við að fara að úthluta 14 við Næsta staða, lækka gegn, og við erum að fara að úthlutað 13, og svo framvegis. Að lokum, þurfum við að takast á horninu ræða þar, ef stjórnin hefur enn vídd, þá bara að gera 15, 14, 13, 12, alla leið niður í 3, 2, 1, er að fara að yfirgefa okkur er unsolvable borð. Og við verðum að skipta um 1 og 2. Svo ef d unga fólkið 2 jafngildir 0, það er hvernig við ætlum að athuga til að sjá hvort það er jafnvel. Ef d unga fólkið 2 jafngildir 0, þá í röð d mínus 1, sem er neðri röðinni, og Afstaða D mínus 2, eða Dálkur D mínus 2, við erum að fara að setja það í 2, og Dálkur D mínus 3 við erum að fara að setja í 1. Svo það er bara snúið þar 1 og 2 eru eins og er. Að lokum, við erum að fara að setja mjög neðst til hægri jafn autt, þar autt hefur verið tæti skilgreint efst jafnt og 0. Svo, það var ekki brýna nauðsyn, þar sem þetta fyrir lykkja er að fara að hafa setja neðst til hægri til 0, síðan gegn vilja náttúrulega ná 0. En það treystir á okkur vita að autt var kjötkássa til að finna a 0. Ef ég fer inn í þessa áætlun og síðar breyta auðan efst á 100, það ætti enn að vinna. Þannig að þetta er bara að ganga úr skugga um að neðst til hægri er í raun jafn okkar autt gildi. Að lokum, höfum við tvær alheims breytur, svo autt ég og eyða J, og við sjáum þá lýsti efst. Og við erum að fara að nota þá tveimur alþjóðlegum breytur til að halda utan um staða auða, svo að við gerum ekki þurfa að horfa í gegnum allt borð að finna auða hvert einasta tíma við að reyna að hreyfa sig. Þannig að staða á óunna efninu alltaf er fara að byrja neðst til hægri. Svo the botn réttur er gefið með tölur, 1 d-mínus 1, d mínus. Svo, það er init. Nú erum við að fara á að draga. Svo draga er að fara að vera svipuð þar sem við erum að fara að iterate yfir umræðuborðinu. Og við viljum bara að prenta verðmæti sem er í hverja stöðu borð. Svo hér erum við prentun á gildi sem í hverja stöðu borð. Og taka eftir því að við erum að gera -. Og það er bara að segja printf sem Óháð því hvort það er einn tölustafur eða tveggja stafa tölu, viljum við samt að taka upp tvo dálka í prenta út, þannig að ef við höfum tveggja stafa og einn stafa númer í sama borð, okkar Stjórnin mun enn líta ágætur og ferningur. Þannig að við viljum gera það fyrir hvert gildi að stjórn, nema fyrir auða. Svo er, ef stöðu á borð jafngildir auða, þá erum við sérstaklega vilt prenta út bara undirstrika til að tákna autt, í stað þess að hvað gildi sem auður í raun er. Að lokum viljum við að prenta út nýja línu. Takið eftir að þetta er enn inni ytri fyrir lykkju, en utan innri for lykkju. Þar sem þetta ytri fyrir lykkja er iterating yfir allar færslur, og svo er þetta printf að fara að prenta bara nýja línu, þannig að við fara að prenta út næsta róður. Og það er það fyrir jafntefli. Svo, nú skulum fara að færa. Nú, fara við færa, flísar að notandi er færð í leiknum - þeir slá inn flísar sem þeir vilja til að færa - og þú ert ímyndaður til að skila bool, svo annaðhvort satt eða ósatt, eftir hvort sem ferðinni var í raun Gildir - hvort sem flísar geta verið flutti inn í auða pláss. Svo hér, lýsa við staðbundna breytu, tile_1 og tile_j, sem eru að fara að vera svipuð blank_i og blank_j, nema það er að fara að halda utan um staða flísar. Nú hér erum við að fara að nota blank_i og blank_j og segja allt í lagi, svo hér er autt á borðinu. Nú er flísar ofan auða? Er flísar til vinstri á auða? Er flísar til hægri á auða? Er flísar neðan auða? Svo er, ef flísar er í hverri sem er af þeim stöður, þá vitum vér, að flísar er hægt að færa inn í auða stað og eyðuna má færa til þar sem flísar er nú. Svo hér, segjum við ef stjórn á stöðu blank_i mínus 1 blank_j. Þannig að þetta er að segja er flísar ofan við núverandi autt? Og ef svo er, erum við að fara að muna sem er staðsetning á flísar. Flísar er í stöðu blank_i mínus 1 og blank_j. nú fyrst, höfum við einnig þessa ávísun hérna, svo blank_i er stærra en 0. Hvers vegna viljum við gera það? Jæja, ef autt er í efstu röð stjórnar, þá viljum við ekki að líta ofan auða fyrir flísar síðan það er ekkert fyrir ofan við efsta röð af borðinu. Þetta er hvernig þú might endir upp getting eitthvað eins og skiptingu kenna eða program gæti bara vinna í óvænta vegu. Svo þetta er að tryggja að við gerum ekki líta á stöðum sem eru ekki gild. Nú við erum að fara að gera það sama fyrir allar aðrar mögulegar samsetningar. Svo hér erum við að leita hér að neðan auða til að sjá hvort það er flísar. Og við verðum einnig að tryggja að við erum ekki á neðri röðinni, eða annað sem við ætti ekki að líta á flísar. Hér erum við að fara að horfa til vinstri auða til að sjá hvort það er flísar. Og við ættum ekki að líta til vinstri ef við erum í dálknum lengst til vinstri. Og hér erum við að fara að horfa til rétt af öskjunni, og við ættum ekki líta til hægri ef við erum í rightmost dálki. Svo, ef enginn af þessum hlutum væri satt, sem þýðir að flísar voru ekki samliggjandi til autt og við getum return false. Ferðinni var ekki gild. En, ef einn af þeim væri satt, þá á þetta lið, við vitum að tile_i og tile_j eru jafn staða flísar. Og svo getum við uppfæra úr stjórninni á stöður tile_i og tile_j. Við vitum að ný gildi verður autt og að staða blank_i blank_j, sem var upprunalega autt - við vitum flísar er að fara að flytja þangað. Taka við í raun ekki að gera alvöru skipti hér, þar sem við vitum að gildum sem þurfa að vera sett í þessum stöðum. Við þurfa ekki tímabundna breytu í kring. Að lokum, þurfum við að muna að við hafa alheims breytur sem eiga halda utan um stöðu af öskjunni. Þannig að við viljum að uppfæra stöðu eyðuna til að vera þar sem flísar upphaflega var. Að lokum, aftur við satt þar ferðinni var vel. Við skipti tekist að autt með flísum. Allt í lagi, svo síðasta sem við þarf að athuga vann. Svo vann álíka skilar bool þar satt er að fara að gefa til kynna að notandi hefur unnið leikinn. Og falskur er bendir til þess að leikurinn er enn í gangi. Notandinn hefur ekki unnið. Svo, þetta er að fara að vera ansi mikið andstæða init, þar init, Mundu, við frumstillt borð til 15, 14, 13, 12, svo á. En vann, viljum við að athuga hvort borð er 1, 2, 3, 4, 5, og svo framvegis. Svo erum við að fara að frumstilla okkar gegn 1 þar sem það er það sem efst vinstri stjórnar ættu að vera. Og þá erum við að fara að lykkja yfir umræðuborðinu. Skulum hunsa þetta ástand fyrir a second. Og þetta ástand er bara að fara að stöðva er um borð í þessari stöðu jafnt og núverandi talningu? Ef svo er, hækka talningu þannig að Næsta staða sem við skoðum er eitt hærri en þeirri stöðu sem við erum á núna. Svo er það hvernig við fáum efst til vinstri ætti að vera 1. Vöxtur talningu í 2. Horfðu á næstu stöðu. Er þetta 2? Ef svo er, hækka á talningu til 3. Næsta staða, er þetta 3? Ef svo er, hækka á talningu til 4, og svo framvegis. Svo ef það er einhver staða á borð sem er ekki jafnt telja okkar, þá viljum við return false þar sem þýðir að það er einhver flísar sem er ekki í réttri stöðu. Svo hér, hvað er þetta ástand að gera? Jæja, muna að blank átti að fara á the botn réttur. Og gæti gildi í auða er ekki endilega jöfn gildi á gegn það er að fara að vera náð neðst til hægri. Þannig að við viljum sérstaklega til að athuga hvort ég jafngildir jafngildir D mínus 1 og j jafn jafngildir d mínus 1 - sem er að segja ef við eru að horfa á the botn réttur af stjórnin - þá erum við bara langar að halda áfram. Við viljum sleppa þessu tiltekna endurtekning á for lykkju. Og svo, ef við stjórna til fá í gegnum þetta hreiður fyrir lykkju, sem þýðir að það var engin flísar sem var í að röng staðsetning. Og við brjótast út úr lykkja og koma hér, þar sem við getum aftur satt. Allar flísar voru í rétta stöðu og það þýðir að notandinn hefur vann leikinn. Og það er það. Mitt nafn er Rob Bowden, og þetta var 15.