>> ZAMYLA CHAN: Ni havas amuzo kun Dek kvin.
Dek kvin estas la unua ludo, kiun vi ricevas apliki kaj ĝi estas interaktiva.
Nun, ne maltrankviliĝu.
Vi ne devas skribi la tuta aĵo mem.
Rigardu la dissendo kodo ĉar loto de la ludo strukturo estas jam
starigis por vi.
Ĝi akceptas kaj parses a komandlinia argumento de la uzanto kaj kreas
tabulo bazita sur tiu enigo.
Ĝi kontrolas se la ludo estas gajnita kaj elirojn Tuj la uzanto gajnas la ludon.
Kaj por gajni la ludon, gxi ricevas enigo de la uzanto kaj
nomas la Move funkcio.
>> Do ni iras al efektivigo kvar funkcioj por la partio de Dek kvin,
init, desegni, movado, kaj gajnis.
Unue, ni pritrakti init.
En init, por pravalorizi, ni reprezentas la estraro en 2D entjero tabelo.
Kaj tio estas globala variablo nomata tabulo kun dimensioj MAX, kaj MAX,
la maksimumaj dimensioj de la tabulo.
Nu, la reala dimensio de la estraro estas donita per la uzanton, reprezentita en
la entjera d, kiu povus esti malpli ol MAX.
Sed, en C, oni ne povas regrandigi sensilo, tial vi estas hokita kun
ke maksimuma dimensio.
>> Via laboro en init estas popoli la valoroj de la estraro
kun la korekta valoro.
Nun, ni vidis 1D sensilo, sed how do 2D arrays labori?
Tie estas indekso de la vico, nulo indeksita kiel ĉiam, kaj tiam ankaŭ de
la kolumno.
Kaj vi plenigu viajn grid in en malsuprenirantaj valorojn, same kiel ĉi tio.
Krado, 0, 0, vico 0, kolumno 0, estas 8, krado 0, 1 estas 7.
Tio estas por ekzemplo kie d, iom d, estas 3.
>> Nun, la estraro en Fifteen devas ankaŭ enhavas malplenan kahelo, se vi iam
ludis kun la fizika ludo.
Sed, tabulo estas entjero tabelo, do ĉiuj valoroj devas esti entjeroj.
Do ĝi estas ĝis vi decidos entjero valoro reprezenti malplenan kahelo.
Por pravalorizi via tabulo, vi povas uzi buklo strukturoj por enhavi la
komencante stato de la tabulo, kie tabulo i j reprezentas la elementon en
vico i kaj kolumno j.
Ili komencas en descendanta ordo kaj, memori, ke se la nombro de kaheloj
estas nepara, tiam vi tuj devas interŝanĝu la situon de 2 kaj de 1.
Do, ni havas niajn pravalorizita tabulo.
>> Nun, ke ni pravalorizita nia estraro, estas tempo por desegni ĝin.
Draw presos la nunan staton de la estraro, sed vi devas certigi
presi kaheloj en la sama ordo ke vi jam pravalorizita ilin.
Kaj vi ankaŭ bezonos formati viaj nombroj korekte.
Ĉar ni havu unuopa ciferoj kaj duobla ciferoj, do vi volas
presi malplenan spacon antaŭ iu unuopa ciferaj nombroj.
Vi uzas tiun uzante la lokokupilo -.
>> Sed memoru niajn malplenan spacon.
Ni ne volas presi la efektiva nombro ke ni jam elektita por reprezenti
ke malplenan spacon en la tabulo, sed ni ankaŭ ne volas presi tute nenion.
Do, kion vi povas fari estas difini simbolo aŭ karaktero por reprezenti la
malplenan kahelo.
En antaŭaj ekzemploj kiujn mi elektis unu substreko, kaj tiam vi simple printi
ke kiam vi atingos la malplenan spaco en via egaleco funkcio.
>> Do cxerpi estos nestitaj por maŝojn.
Io kiel ĉi tio.
Por ĉiu vico, kaj tiam por ĉiu valoro de la vico, vi tuj presi la
valoro en tiu spaco.
Kiam vi presas ĉiujn valorojn en la vico, tiam vi
povas presi novan linion.
Memoru ke la ordo por via egaleco funkcio devas echo aŭ reflekti la ordo
en via pravalorizita funkcio.
>> Nun ke vi pravalorizita la estraro kaj ke vi jam desegnis ŝin, ke estas tempo por ni
la uzanto redakti ĝin kaj fari liajn movojn.
Do, en la Fifteen.c funkcio, la programo prenas enigon el la uzanto kaj
do nomas la movado funkcion, pasante en la nombro de la kahelo, ke la
uzanto volas movi.
Nun, atentu.
Tiu estas la efektiva nombro de la kahelo kaj ne lia reala pozicio.
Do, vi bezonos serĉi la tile la pozicio por scii kie ĝi estas.
>> Nun, vi devus nur permesi al la uzanto fari movon, se ĝi estas laŭleĝa.
Leĝa movado estas ajna tile ke estas apuda al la malplenan kahelo.
Tio signifas, sur kaj sub, al maldekstren kaj dekstren.
Do vi devos scii kie la malplenan kahelo estas tiel.
Nun, cxar cxiu movas vi serĉado la uzantoj azuleĥo, sed probable
Ne pli bone sercxi la malplenan kahelo ĉiufoje, ĉar vi faras gxin
ĉiun solan fojon la uzanto volas movi.
Do, anstataŭe, ĝi estas plej bone memoras kie la malplenan kahelo estas uzanta kelkajn
bone nomata variabloj.
Do iam vi permesas al la uzanto por fari siajn movas, ili estas bone en siaj
maniero por gajni la ludon de Dek kvin.
>> Por gajni la ludon de Dek kvin, la tegoloj esti en specifa ordo, kaj
la gajnita funkcio kontrolas ĉu La ludo estas gajnita.
Ĝi donas True se la ludo estas gajnita kaj la tegoloj estas en la ĝusta ordo,
kaj Falsa alie.
Do por gajni la ludon de Dek kvin, tegolo devas esti kreskanta ordo, kun la
malplenan kahelo en la dekstra malsupra angulo.
Do kiel vi kontrolu ĉu la uzanto movis la tabulon en la dekstra
orientiĝo?
>> Nu, vi devos persisti pri la estraro kaj kontroli la valorojn por certigi ke
Ili estas en la gxusta loko.
Por fari tion, vi povas uzi ingita por masxojn ĝuste kiel vi faris
en egaleco kaj en init.
Ekzistas kelkaj manieroj por kontroli kaj validigi ĉu la tabulo estas
ĝentila kaj amikema formadon, tamen.
Se vi iras de maldekstre al dekstre, startanta De la supro vico malsupren, tiam ĉiu
numero devas esti pli granda ol la antaŭa.
Estu singarda pri kio taksu vi havas elektita por via blank kahelo kvankam.
>> Aŭ vi povus uzi nombrilo variablo por certigi ke ĉiu valoro estas en loko, se
oni elpensis ian formulo por reprezenti tion.
Do amuzi sperti kun la matematiko.
Kiam vi iros kun maniero, reveno Vera fojon la uzanto gajnis la ludon.
Sed se iu valoro estas malĝusta, reveno Falsa, la uzanto devas sekvi movas
cxar ili ne gajnis la ludon.
Unufoje vi apliki ĉi ĉeko kaj, kune kun pravalorizi, desegni, kaj moviĝas,
vi jam finis la ludon de Dek kvin.
Gratulon kaj amuziĝi ludante.
Mia nomo estas Zamyla kaj ĉi tiu estas CS50.