>> ZAMYLA Chan: Hayaan ang mayroon ng Magpakasaya sa labinlimang.
Labinlimang ay ang unang laro na nakakakuha ka ng ipatupad at ito ay interactive.
Ngayon, huwag mag-alala.
Hindi mo na kailangang isulat ang iyong sarili buong bagay.
Tumingin sa code sa pamamahagi dahil may isang marami ng istraktura ng laro ay
set up para sa iyo.
Tinanggap ito at Pina-parse ng isang command line argumento mula sa user at lumilikha ng
board batay sa input na.
Sumusuri ito kung ang mga laro ay nanalo at labasan isang beses nanalo ng user ang laro.
At upang manalo sa laro, nakakakuha ito input mula sa user at
tinatawag ng Ilipat function.
>> Kaya kami ay pagpunta sa ay pagpapatupad ng apat mga pag-andar para sa mga laro ng labinlimang,
init, gumuhit, ilipat, at nanalo.
Una, pagharap sa isang bagay ng init ipaalam.
Sa init, para sa pagsisimula ng pag, kumakatawan namin ang board sa isang 2D integer array.
At ito ay isang pandaigdigang variable na tinatawag na board sa mga sukat MAX, at MAX,
ang maximum na sukat ng board.
Ngayon, ang aktwal na sukat ng board ay ibinibigay sa pamamagitan ng mga gumagamit, na kinakatawan sa
ang integer d, na dati mas mababa kaysa sa MAX.
Ngunit, sa C, hindi ka maaaring baguhin ang laki ng array, kaya ka natigil sa
na maximum na sukat.
>> Ang iyong trabaho sa init ay upang panahanan ng mga tao ang mga halaga ng board
kasama ang tamang halaga.
Ngayon, nakakita kami 1a array, ngunit paano ko 2D array gumagana?
Mayroong isang index ng hilera, ZERO na-index tulad ng dati, at pagkatapos din ng
ang hanay.
At makikita mo punan ang iyong grid sa sa pababang mga halaga, tulad nito lamang.
Grid, 0, 0, hilera 0, haligi 0, 8, grid 0, 1 ay 7.
Ito ay para sa isang halimbawa kung saan d, kaunti d, ay 3.
>> Ngayon, ang board sa loob ng labinglimang dapat din naglalaman ng isang blangko na tile, kung ikaw kailanman
naglaro sa pisikal na laro.
Ngunit, board ay isang integer array, kaya lahat ng mga halaga na kailangang maging integer.
Kaya ito ay nasa sa iyo na magpasya isang integer halaga sa mga kumakatawan sa isang blangko na tile.
Upang simulan ang iyong board, maaari mong gamitin ang loop mga istraktura na naglalaman ng
nagsisimula estado ng board, kung saan board i j ay kumakatawan sa mga elemento sa
hilera i at haligi j.
Simulan nila sa pababang pagkakasunud-sunod at, tandaan, na kung ang bilang ng mga tile
ay kakaiba, pagkatapos ikaw ay pagpunta sa may upang magpalit ang lokasyon ng 2 at ng 1.
Kaya doon, mayroon kaming ang aming nasimulan board.
>> Ngayon, na-nasimulan namin ang aming board, oras na upang gumuhit ito.
Draw ay i-print ang kasalukuyang estado ng mga board, ngunit kailangan mong tiyakin
mag-print ng mga tile sa parehong pagkakasunud-sunod na iyong nasimulan ang mga ito.
At kailangan mo rin i-format ang iyong mga numero ng tama.
Dahil maaaring mayroon kami solong digit at double digit, pagkatapos ay nais mong i-
mag-print ng isang blangko ang puwang bago sa anumang solong digit na numero.
Gamitin mo na sa paggamit ang placeholder -.
>> Ngunit tandaan ang aming mga blangko na espasyo.
Hindi namin nais na i-print ang aktwal na bilang na pinili namin upang kumatawan
na blangko ang puwang sa board, ngunit din namin ayaw na walang print sa lahat.
Kaya ano ang maaari mong gawin ay upang tukuyin ang isang simbolo o ng character upang kumatawan sa
blangko tile.
Sa mga nakaraang mga halimbawa pinili ko ang isang guhitan sa ilalim, at pagkatapos ay i-print mo lamang
na sa tuwing maabot mo ang blangko puwang sa iyong mga pag-andar sa mabubunot.
>> Kaya gumuhit ay na-nested para sa mga loop.
Isang bagay na katulad nito.
Para sa bawat hilera, at pagkatapos ay para sa bawat halaga sa ang hilera, ikaw ay pagpunta sa i-print ang
halaga sa puwang na ito.
Sa sandaling na-print na ang lahat ng mga halaga sa hilera, pagkatapos mo
maaaring mag-print ng isang bagong linya.
Tandaan na ang pagkakasunod-sunod para sa iyong mabubunot pag-andar ay dapat echo o gayahin ang pagkakasunod-sunod
sa iyong nasimulan function.
>> Ngayon na nasimulan mo ang board at na na iginuhit mo ito, oras na upang ipagbigay-
i-edit ito user at gumawa ng kanilang mga galaw.
Kaya sa mga Fifteen.c function, ang programa ay tumatagal ng input mula sa user at
pagkatapos ay tawag ang paglipat function, pagpasa sa bilang ng mga tile na ang
Gusto ni upang ilipat gumagamit.
Ngayon, mag-ingat.
Ito ang aktwal na bilang ng mga tile at hindi ang aktwal na posisyon.
Kaya, kailangan mo upang maghanap para sa mga tile ng posisyon upang malaman kung saan ito.
>> Ngayon, dapat mong payagan lamang ang user upang makagawa ng isang ilipat kung ito ay legal.
Ang isang legal na paglipat ng anumang tile na ay Katabi ng blangko tile.
Ibig sabihin, sa itaas at sa ibaba, upang sa kaliwa at sa kanan.
Kaya kailangan mong malaman kung saan ang blangko tile ay pati na rin.
Ngayon, para sa bawat ilipat naghahanap ka para sa ang tile mga gumagamit, ngunit ito ay marahil
hindi makakaya upang maghanap para sa mga blangko na tile sa bawat oras dahil ninyo ito ginagawa
bawat solong oras ang Gusto ni upang ilipat gumagamit.
Kaya, sa halip, ito ay pinakamahusay upang tandaan kung saan ang blangko tile ay gumagamit ng ilang mga
mahusay na pinangalanang variable.
Kaya sabay-daan sa iyo ang user upang gawin ang kanilang gumagalaw, ang mga ito ay na rin sa kanilang mga
paraan upang panalong ang laro ng labinlimang.
>> Upang manalo sa laro ng labinlimang, ang mga tile kailangang maging sa isang tiyak na pagkakasunod-sunod, at
sumusuri ang nanalo function na kung ang laro ay nanalo.
Ibinabalik nito ang True kung ang laro ay nanalo at ang mga tile ay sa tamang pagkakasunud-sunod,
at Mali kung hindi man.
Kaya upang manalo sa laro ng labinlimang, tile ay kailangang pagtaas ng order, gamit ang
blangko tile sa ilalim na kanang sulok.
Kaya paano mo suriin kung ang user Lumipat na ang board sa kanan
orientation?
>> Well, makikita mo umulit sa ibabaw ng board at suriin ang mga halaga upang tiyakin na
ang mga ito ay nasa tamang lugar.
Upang gawin ito, maaari mong gamitin Nested para sa mga loop tulad lang ng ginawa mo
sa mabubunot at sa init.
Mayroong ilang mga paraan upang suriin at patunayan kung ang board ay
tama at isang panalong bituin, bagaman.
Kung pumunta ka mula kaliwa hanggang kanan, simula mula sa hilera sa tuktok down, pagkatapos ay i-araw-
numero ay dapat mas malaki kaysa sa ang isang nakaraan.
Mag-ingat tungkol sa kung ano ang iyong pinapahalagahan nai pinili mo para sa iyong mga blangko na tile bagaman.
>> O maaari kang gumamit ng isang counter variable sa tiyakin na ang bawat halaga ay nasa lugar, kung
mong makabuo ng isang uri ng formula upang kumatawan ito.
Kaya magsaya eeksperimento sa matematika.
Sa sandaling na-makabuo ng isang paraan, na pagbalik True-sabay ang gumagamit ay nanalo sa laro.
Ngunit kung ang anumang mga halaga ay hindi tama, pagbalik Maling, ang user ay may upang magpatuloy gumagalaw
dahil hindi nila na nanalo sa laro.
Sa sandaling ipatupad mo ang pagsusuring ito at, kasama may initialize, gumuhit, at ilipat,
natapos mo na ang laro ng labinlimang.
Binabati kita at magsaya playing.
Ang pangalan ko ay Zamyla at ito ay CS50.