>> ZAMYLA CHAN: Le të ketë fun me pesëmbëdhjetë.
Pesëmbëdhjetë është loja e parë që ju të merrni për të zbatuar dhe është interaktive.
Tani, për të mos u shqetësoni.
Ju nuk keni për të shkruar gjithë gjë veten.
Shikoni në kodin e shpërndarjes sepse një shumë e strukturës lojës është tashmë
ngritur për ju.
Ajo pranon dhe parses një linjë komande Argumenti nga përdoruesit dhe krijon një
Bordi i bazuar në atë të dhëna.
Ajo kontrollon nëse loja është e fituar dhe daljet një herë përdoruesit e fitoi ndeshjen.
Dhe për të fituar ndeshjen, ajo merr të dhëna nga përdoruesit dhe
thërret funksionin Leviz.
>> Pra, ne jemi duke shkuar për të zbatuar katër Funksionet për lojë pesëmbëdhjetë,
init, barazim, veprim, dhe fitoi.
Së pari, le të trajtuar init.
Në init, për të nisja, ne përfaqësojmë bordi në një rrjet 2D numër i plotë.
Dhe kjo është një ndryshore globale të quajtur Bordi me dimensione MAX, dhe MAX,
dimensionet maksimale e bordit.
Tani, dimensioni aktuale e bordit është dhënë nga ana e përdoruesit, të përfaqësuar në
numër i plotë d, e cila mund të jetë më pak se MAX.
Por, në C, ju nuk mund të ndrysho vargjeve, kështu që ju jeni të mbërthyer me
se dimensioni maksimal.
>> Detyra jote në init është që populloj vlerat e bordit
me vlerën e saktë.
Tani, ne kemi parë vargjeve 1D, por si nuk punojnë vargjeve 2D?
Ka një indeks i rreshtit, zero indeksuar si gjithmonë, dhe më pas edhe i
kolona.
Dhe ju do të plotësoni rrjetit tuaj në në zbritur vlerat, ashtu si kjo.
Grid, 0, 0, 0 row, column 0, është 8, grid 0, 1 është 7.
Kjo është për shembull, ku d, pak d, është 3.
>> Tani, bordi në pesëmbëdhjetë duhet gjithashtu përmbajnë një tjegull bosh, në qoftë se ju keni ndonjëherë
luajtur me lojë fizike.
Por, bordi është një grup numër i plotë, në mënyrë të gjitha vlerat duhet të jenë numra të plotë.
Kështu që është e deri tek ju për të vendosur një numër të plotë vlera për të përfaqësuar një tjegull bosh.
Për të nisja bordit tuaj, ju mund të përdorni Strukturat loop të përmbajnë
duke filluar shtet i bordit, ku bordi i j përfaqëson elementin në
i rresht dhe kolonë j.
Ata fillojnë në rend zbritës dhe, mos harroni, se në qoftë se numri i pllakave
është i rastësishëm, atëherë ju jeni do të duhet të bie në ujdi vendin e 2 dhe prej 1.
Pra atje, ne kemi tona bordit niset.
>> Tani, që ne i kemi initialized tonë bordit, është koha për të nxjerrë atë.
Draw do të shtypura gjendjen aktuale të bordit, por ju duhet të bëni të sigurtë
për të shtypur pllaka në të njëjtën mënyrë që e keni nisur ato.
Dhe gjithashtu ju duhet të format numrat tuaj të saktë.
Sepse ne mund të kemi shifra të vetme dhe shifra të dyfishtë, atëherë ju doni të
shkruar një hapësirë ​​bosh para çdo numra njëshifrorë.
Ju përdorni atë duke përdorur placeholder -.
>> Por mos harroni hapësirën tonë bosh.
Ne nuk duam të shtypura numrin aktual që ne kemi zgjedhur për të përfaqësuar
se hapësira bosh në bord, por ne gjithashtu nuk duan të shtypura asgjë në të gjitha.
Pra, çfarë mund të bëni është që të përcaktojë një simbol ose karakter për të përfaqësuar
tjegull bosh.
Në shembujt e mëparshëm unë kam zgjedhur një të theksuar, dhe atëherë ju vetëm të shtypura
që sa herë që ju të arrijnë bosh hapësirë ​​në funksion tuaj barazim.
>> Pra barazim do të ketë mbivendosur për sythe.
Diçka si kjo.
Per çdo rresht, dhe pastaj për secilën vlerë në rresht, ju do të jeni për të shtypur
vlera në këtë hapësirë.
Pasi të keni shtypur të gjitha vlerat në radhë, atëherë ju
mund të shtypura një linjë të re.
Mos harroni se urdhri për barazim tuaj Funksioni duhet të bëjnë jehonë apo pasqyrojnë rendin
në funksion tuaj të niset.
>> Tani që ju initialized e bordit dhe që e keni tërhequr atë, është koha për të le të
përdorues redaktoj atë dhe të bëjnë lëvizjet e tyre.
Pra, në funksion Fifteen.c, Programi i merr të dhëna nga përdoruesit dhe
pastaj thërret funksionin veprim, duke kaluar në numrin e tjegulles se
përdoruesi dëshiron të lëvizë.
Tani, të jenë të kujdesshëm.
Ky është numri aktual i tjegull dhe jo pozicionin e saj aktual.
Pra, ju do të duhet për të kërkuar për tjegull-së Pozita të dinë se ku është.
>> Tani, ju duhet të lejojë vetëm përdoruesit për të bërë një lëvizje nëse është e ligjshme.
Një veprim ligjor është çdo tjegull se është ngjitur me pllakave bosh.
Që nënkupton, sipër dhe poshtë, për të majtë dhe të djathtë.
Pra, ju do të duhet të dini se ku tjegull bosh është si.
Tani, për çdo veprim që ju jeni në kërkim për tjegull përdoruesit, por kjo është ndoshta
nuk më të mirë për të kërkuar për tjegull bosh çdo herë për shkak se ju jeni duke bërë atë
çdo herë të vetme përdoruesi dëshiron të lëvizë.
Pra, në vend të kësaj, është më mirë të mbani mend se ku tjegull bosh është duke përdorur disa
edhe variabla me emrin.
Pra, sapo ju të lejojë përdoruesin për të bërë të tyre lëviz, ata janë të mirë në e tyre
mënyrë për të fituar ndeshjen e pesëmbëdhjetë.
>> Për të fituar ndeshjen e pesëmbëdhjetë, pllakave duhet të jetë në një mënyrë të caktuar, dhe
funksioni fitoi kontrollon nëse loja është e fituar.
Ajo kthen vërtetë nëse loja është e fituar dhe pllaka janë në mënyrë korrekte,
dhe False ndryshe.
Pra, për të fituar ndeshjen e pesëmbëdhjetë, pllaka kanë për të rritur rendin, me
tjegull bosh në këndin e poshtëm të djathtë.
Pra, si ju kontrolloni nëse përdoruesi ka lëvizur bordit në të djathtë
Orientimi?
>> E pra, ju do të iterate mbi bordit dhe kontrolloni vlerat për të siguruar që
ata janë në vendin e duhur.
Për ta bërë këtë, ju mund të përdorni mbivendosur për sythe ashtu si ju bëri
në barazim dhe në init.
Ka disa mënyra për të kontrolluar dhe vërtetoni nëse bordi është
saktë dhe një fitues formimin, pse.
Nëse ju shkoni nga e majta në të djathtë, duke filluar nga rreshtin e lartë poshtë, atëherë çdo
numër duhet të jetë më i madh se e mëparshmja.
Jini të kujdesshëm në lidhje me atë që ju e vlerësoni keni zgjedhur për tjegull tuaj bosh pse.
>> Ose ju mund të përdorni një ndryshore kundër të të siguruar që çdo vlerë është në vend, në qoftë se
ju të dalë me një lloj të formulë për të përfaqësuar këtë.
Pra, have fun eksperimente me matematikë.
Pasi të keni dalë me një mënyrë, kthim Vërtetë një herë përdorues ka fituar ndeshjen.
Por në qoftë se çdo vlerë është i pasaktë, kthimi False, përdoruesi duhet të vazhdojë të lëvizur
sepse ata nuk e kanë fituar ndeshjen.
Pasi të zbatojë këtë kontroll dhe, së bashku me nisja, barazim, dhe për të shkuar,
të keni përfunduar lojën e pesëmbëdhjetë.
Urime dhe kanë luajtur fun.
Emri im është Zamyla dhe kjo është CS50.