>> ZAMYLA CHAN: Pojďme se zábava s patnácti.
Patnáct je první hra, která vám realizovat a je to interaktivní.
Nyní, ne se bát.
Nemusíte psát Celá ta věc sami.
Podívejte se na distribuci kódu, protože Mnoho struktury hry je již
nastavit pro vás.
To přijímá a analyzuje příkazového řádku Argument od uživatele a vytváří
rada na základě tohoto vstupu.
Kontroluje, zda je hra vyhrál a východy jakmile uživatele vyhrál hru.
A vyhrát hru, dostane vstup od uživatele a
volá funkci Move.
>> Takže budeme se provádí čtyři funkce pro hru patnácti,
init, kreslit, krok, a vyhrál.
Za prvé, pojďme řešit init.
V init, initialize, zastupujeme deska ve 2D celočíselné pole.
A to je globální proměnná s názvem deska s rozměry MAX, a MAX,
maximální rozměry desky.
Nyní, skutečný rozměr desky je dána uživateli, znázorněného na
číslo d, které by mohly být menší než MAX.
Ale v C, nemůžete změnit velikost pole, takže jste uvízl s
že maximální rozměr.
>> Vaším úkolem v init je k naplnění hodnoty desce
se na správnou hodnotu.
Teď jsme viděli 1D pole, ale jak 2D pole fungují?
K dispozici je index řádku, na nulu indexovány jako vždy, a pak také
sloupec.
A budete vyplnit vaše síť v v sestupně hodnot, stejně jako to.
Grid, 0, 0, 0 řádek, sloupec 0, 8, mřížka 0, 1 je 7.
To je pro příklad, kdy d, málo d je 3.
>> Nyní, musí být také tabule v patnácti obsahují prázdné dlaždice, pokud jste někdy
hrál si s fyzickou hrou.
Ale deska je celé číslo pole, takže všechny hodnoty musí být celá čísla.
Takže je to jen na vás, rozhodnout, celé číslo hodnoty představují prázdné dlaždice.
Chcete-li inicializovat vaše rady, můžete použít smyčka struktury obsahují
výchozí stav desky, kde deska i j představuje prvek na
řádek i sloupec a j.
Začnou v sestupném pořadí a si, že v případě, že počet dlaždic
je liché, pak budete muset prohodit umístění 2 a 1.
Takže tam máme naše inicializaci desky.
>> Nyní, že jsme inicializován naše deska, je čas nakreslit.
Losování bude tisknout aktuální stav deska, ale musíte se ujistit,
vytisknout dlaždice ve stejném pořadí že jste inicializaci je.
A také je třeba naformátovat vaše čísla správně.
Vzhledem k tomu, bychom mohli mít jednotlivé číslice a dvojité číslice, pak budete chtít, aby
vytisknout prázdnou mezeru před veškeré jednotlivé číslice čísla.
Můžete použít, že pomocí zástupný symbol -.
>> Ale pamatujte si naši mezeru.
Nechceme tisknout skutečný počet že jsme se rozhodli reprezentovat
že prázdné místo v radě, ale také nechcete tisknout vůbec nic.
Takže to, co můžete udělat, je definovat symbol nebo znak reprezentovat
prázdné dlaždice.
V předchozích příkladech jsem zvolil podtržení, a pak stačí vytisknout
že vždy, když se dostanete prázdný prostor ve vaší draw funkci.
>> Takže remíza bude mít vnořené cykly for.
Něco takového.
Pro každý řádek, a pak pro každou hodnotu v řádek, budete k tisku
hodnota v tomto prostoru.
Poté, co jste se vytisknout všechny hodnoty v řádku, pak
Můžete vytisknout nový řádek.
Nezapomeňte, že příkaz pro remízu Funkce musí echo nebo odrážet objednávky
v inicializován funkci.
>> Nyní, když inicializován desku a že jste vyvodit to, že je čas, aby
uživatel upravit a aby jejich pohyby.
Takže ve funkci Fifteen.c, Program má vstup od uživatele a
pak zavolá funkci přesunu, předání počtu na dlaždice, které
uživatel chce pohybovat.
Nyní, buďte opatrní.
To je skutečný počet dlaždic a ne jeho aktuální pozice.
Takže, budete muset hledat dlaždice je Postoj, který ví, kde to je.
>> Nyní byste měli povolit jen uživateli provést tah, jestli je to legální.
Právní krok je nějaký dlaždice, které je vedle prázdné dlaždice.
To znamená, že výše a níže, aby doleva a doprava.
Takže budete muset vědět, kde prázdné dlaždice je také.
Nyní, za každý pohyb hledáte Uživatelé dlaždice, ale to je asi
Není nejlepší hledat prázdné dlaždice pokaždé, protože to děláte
každý čas uživatel chce pohybovat.
Takže místo toho, je to nejlepší, aby si vzpomenout, kde prázdné dlaždice pomocí některé
stejně pojmenované proměnné.
Takže jakmile umožňují uživateli, aby se jejich pohyby, které jsou dobře na jejich
způsob, jak vyhrávat hru Fifteen.
>> Chcete-li vyhrát hru Fifteen, dlaždic musí být v určitém pořadí, a
vyhrál funkce kontroluje, zda Hra je vyhrána.
Vrací TRUE, pokud je hra vyhrál a dlaždice jsou ve správném pořadí,
a False jinak.
Takže vyhrát hru patnáct, dlaždic musí být vzestupném pořadí, s
prázdné dlaždice na pravém spodním rohu.
Tak jak se vám zjistit, zda uživatel se přestěhovala desku do pravé
orientace?
>> No, budete iterovat přes palubu a zkontrolujte hodnoty, aby se ujistil, že
že jsou na správném místě.
Chcete-li to provést, můžete použít vnořené pro smyčky stejně jako vy
v losování a init.
Existuje několik způsobů, jak zkontrolovat a ověřit, zda je deska
správné a vítězný formace, ačkoli.
Pokud půjdete zleva doprava, počínaje z horního řádku dolů, pak každý
číslo musí být větší než ten předchozí.
Dávejte pozor na to, co si ceníte si vybrán pro prázdné dlaždice ačkoli.
>> Nebo můžete použít proměnnou čítač pro zajistit, aby každá hodnota je na místě, pokud
můžete přijít s nějakým Vzorec reprezentovat to.
Takže bavte se experimentovat s matematikou.
Poté, co jste přišli na způsob, návrat Pravda, jakmile uživatel vyhrál hru.
Ale pokud existuje hodnota je nesprávná, návrat False, uživatel musí pokračovat v pohybu
protože nevyhrál hru.
Jakmile se rozhodnete tuto kontrolu a spolu s initialize, kreslit, a pohybovat se,
jste dokončili hru Fifteen.
Gratulujeme a bavit hrát.
Jmenuji se Zamyla a je to CS50.