>> ZAMYLA CHAN: Við skulum hafa gaman með fimmtán.
Fimmtán er fyrsti leikurinn sem þú færð að hrinda í framkvæmd og það er gagnvirkt.
Nú, ekki að hafa áhyggjur.
Þú þarft ekki að skrifa það heild hlutur sjálfur.
Líta á dreifingu kóða vegna þess að mikið af leiknum uppbygging er nú þegar
sett upp fyrir þig.
Það tekur og flokka a stjórn lína rök frá notanda og skapar
borð byggt á þeirri inntak.
Það eftirlit ef leikurinn er unnið og hættir Þegar notandi er vann leikinn.
Og til að vinna leikinn, fær það inntak frá notanda og
kallar Færa virka.
>> Þannig að við erum að fara að vera framkvæmd fjögur virka fyrir leikinn fimmtán,
init, teikna, færa, og vann.
Í fyrsta lagi skulum takast init.
Í init, fyrir frumstilla, fulltrúi við stjórnin í 2D heiltölu fylki.
Og þetta er alþjóðlegt breytu sem heitir borð með mál max, og Max,
hámarks stærð af the borð.
Nú, í raun vídd stjórnar er gefið af notanda, fulltrúa í
heiltölunni d, sem gæti vera minna en MAX.
En, í C, þú getur ekki breytt stærð fylki, svo þú ert fastur með
að hámarks vídd.
>> Starf þitt í init er að byggja að gildin fyrir borð
með rétt gildi.
Nú höfum við séð 1D fylki, en hvernig 2D fylki vinna?
Það er vísitölu röðinni, núll verðtryggð eins og alltaf, og þá einnig af
dálkinum.
Og þú munt fylla rist þína í í lækkandi gildi, rétt eins og þetta.
Tafla, 0, 0, röð 0, dálkur 0, er 8, Tafla 0, 1 er 7.
Þetta er til að tekið er dæmi þar d, lítið D, er 3.
>> Nú er stjórn í fimmtán verður einnig innihalda auða flísar, ef þú hefur einhvern tíma
spilað með líkamlega leik.
En, borð er heiltala array, svo Öll gildi verða að vera heiltölur.
Svo það er komið að þér að ákveða heiltölu gildi til að tákna auðan flísar.
Að frumstilla borð þitt, þú getur notað lykkja mannvirki að innihalda
byrja ástand stjórnar, þar borð Ég j táknar þáttur í
róður i og dálki j.
Þeir byrja í röð og, muna, að ef fjöldi flísum
er skrýtið, þá þú ert að fara til verða að skipta um staðsetningu 2 og 1..
Þannig að það höfum við okkar frumstilla borð.
>> Nú, þegar við höfum frumstilla okkar borð, er kominn tími til að draga það.
Drátturinn mun prenta núverandi ástand á borð, en þú þarft að ganga úr skugga um
að prenta flísar í sömu röð að þú hafir frumstilla þá.
Og þú þarft líka að forsníða númer þitt rétt.
Þar sem við gætum hafa einn tölustafur og tveggja stafa tölu, þá þú vilt
prenta inn bil áður allir einn stafa númer.
Þú notar það með því að nota sem tákn -.
>> En muna autt pláss okkar.
Við viljum ekki að prenta raunverulegan fjölda sem við höfum valið til að tákna
sem autt pláss í borð, en við líka vil ekki að prenta neitt.
Svo er það sem þú getur gert til að skilgreina tákn eða eðli til að tákna
autt flísar.
Í fyrri dæmum sem ég hef valið að undirstrika, og þá prenta bara
að þegar þú nærð í auða pláss í jafntefli virka.
>> Svo draga mun hafa orpið fyrir lykkjur.
Eitthvað eins og þetta.
Fyrir hverja röð, og þá fyrir hvert gildi í röðinni, ert þú að fara að prenta
gildi í þessu rými.
Þegar þú hefur prentað öll gildin í röð, þá er
Hægt er að prenta nýja línu.
Mundu að röð fyrir jafntefli þinni aðgerð verður echo eða spegill röð
í frumstilla virka.
>> Nú þegar þú frumstilla borð og að þú hafir dregið hana, það er kominn tími til að láta
notandinn breyta henni og gera hreyfingar þeirra.
Svo í Fifteen.c virka, Dagskráin tekur inntak frá notanda og
þá kallar Ferðinni virka, liggur í fjölda flísar til þess að
notandi vill færa.
Nú, vera varkár.
Þetta er í raun númer flísar og ekki raunverulegt stöðu sína.
Svo, þú þarft að leita að flísar er stöðu til að vita hvar hún er.
>> Nú ættir þú aðeins að leyfa notandanum til að færa ef það er löglegt.
A löglegur færa er einhver flísar sem er við hliðina á auðu flísar.
Það þýðir að ofan og að neðan, til að vinstri og til hægri.
Svo þú þarft að vita hvar auða flísar er eins og heilbrigður.
Nú, fyrir hverri hreyfingu sem þú ert að leita að sem notendur flísar, en það er líklega
ekki best að leita að eyða flísar í hvert skipti vegna þess að þú ert að gera það
hvert einasta skipti sem notandi vill færa.
Svo, í staðinn, það er best að muna hvar auða flísar er með einhverja
vel heitir breytur.
Svo þegar þú leyfa notanda að gera sína færist, þeir eru vel á sínum
leið til að vinna leikinn fimmtán.
>> Til að vinna leikinn fimmtán, flísar verða að vera í ákveðinni röð, og
sem vann virka tékka hvort leikurinn er unnið.
Það skilar True ef leikurinn er unnið og flísar eru í réttri röð,
og ósönn annars.
Svo að vinna leikinn í fimmtán, flísar að vera vaxandi röð, með
autt flísar á neðst í hægra horninu.
Svo hvernig gera skrá þig hvort notandi hefur flutt borð í hægri
stefnumörkun?
>> Jæja, þú iterate yfir borð og athuga gildi til að tryggja að
þeir eru á réttum stað.
Til að gera þetta, getur þú notað hreiður fyrir lykkjur bara eins og þú gerðir
í jafntefli og í init.
There ert a par af leiðir að athuga og sannreyna hvort stjórnin er
rétt og aðlaðandi myndun, þó.
Ef þú ferð frá vinstri til hægri og hefst úr efstu röðinni niður, síðan á
númerið verður að vera hærri en fyrri einn.
Verið varkár um hvaða gildi þú hefur valið fyrir auða flísar þó.
>> Eða þú getur notað gegn breytu í sjá til þess að hvert gildi er til staðar, ef
þú kemur upp með einhvers konar formúlu til að tákna þetta.
Svo hafa gaman að gera tilraunir með stærðfræði.
Þegar þú hefur komið upp með a vegur, aftur True þegar notandi hefur unnið leikinn.
En ef einhver gildi er rangt, aftur False, sem notandinn þarf að halda áfram að færa
vegna þess að þeir hafa ekki unnið leikinn.
Þegar þú framkvæma þessa ávísun og, ásamt með frumstilla, teikna, og færa,
þú hefur lokið leik fimmtán.
Til hamingju og hafa gaman að spila.
Mitt nafn er Zamyla og þetta er CS50.