>> ZAMYLA CHAN: Poďme sa zábava s pätnástimi.
Pätnásť je prvá hra, ktorá vám realizovať a je to interaktívne.
Teraz, nie sa báť.
Nemusíte písať Celá tá vec sami.
Pozrite sa na distribúciu kódu, pretože Mnoho štruktúry hry je už
nastaviť pre vás.
To prijíma a analyzuje príkazového riadku Argument od užívateľa a vytvára
rada na základe tohto vstupu.
Kontroluje, či je hra vyhral a východy akonáhle užívateľa vyhral hru.
A vyhrať hru, dostane vstup od užívateľa a
volá funkciu Move.
>> Takže budeme sa vykonáva štyri funkcie pre hru pätnástich,
init, kresliť, krok, a vyhral.
Po prvé, poďme riešiť init.
V init, initialize, zastupujeme doska v 2D celočíselné pole.
A to je globálna premenná s názvom doska s rozmermi MAX, a MAX,
maximálne rozmery dosky.
Teraz, skutočný rozmer dosky je daná užívateľovi, znázorneného na
číslo d, ktoré by mohli byť menšia než MAX.
Ale v C, nemôžete zmeniť veľkosť poľa, takže ste uviazol s
že maximálny rozmer.
>> Vašou úlohou v init je k naplneniu hodnoty doske
sa na správnu hodnotu.
Teraz sme videli 1D pole, ale ako 2D pole fungujú?
K dispozícii je index riadku, na nulu indexované ako vždy, a potom tiež
stĺpec.
A budete vyplniť vaše sieť v v zostupne hodnôt, rovnako ako to.
Grid, 0, 0, 0 riadok, stĺpec 0, 8, mriežka 0, 1 je 7.
To je pre príklad, kedy d, málo d je 3.
>> Teraz, musia byť tiež tabule v pätnástich obsahujú prázdne dlaždice, ak ste niekedy
hral si s fyzickou hrou.
Ale doska je celé číslo poľa, takže všetky hodnoty musia byť celé čísla.
Takže je to len na vás, rozhodnúť, celé číslo hodnoty predstavujú prázdne dlaždice.
Ak chcete inicializovať vaše rady, môžete použiť slučka štruktúry obsahujú
východiskový stav dosky, kde doska i j predstavuje prvok na
riadok i stĺpec a j
Začnú v zostupnom poradí a si, že v prípade, že počet dlaždíc
je nepárne, potom budete musieť prehodiť umiestnenie 2 a 1.
Takže tam máme naše inicializáciu dosky.
>> Teraz, že sme inicializovaný naše doska, je čas nakresliť.
Žrebovanie bude tlačiť aktuálny stav doska, ale musíte sa uistiť,
vytlačiť dlaždice v rovnakom poradí že ste inicializácii je.
A tiež je potrebné naformátovať vaše čísla správne.
Vzhľadom k tomu, by sme mohli mať jednotlivé číslice a dvojité číslice, potom budete chcieť, aby
vytlačiť prázdnu medzeru pred všetky jednotlivé číslice čísla.
Môžete použiť, že pomocou zástupný symbol -.
>> Ale pamätajte si našu medzeru.
Nechceme tlačiť skutočný počet že sme sa rozhodli reprezentovať
že prázdne miesto v rade, ale aj nechcete tlačiť vôbec nič.
Takže to, čo môžete urobiť, je definovať symbol alebo znak reprezentovať
prázdne dlaždice.
V predchádzajúcich príkladoch som zvolil podčiarknutie, a potom stačí vytlačiť
že vždy, keď sa dostanete prázdny priestor vo vašej draw funkcii.
>> Takže remíza bude mať vnorené cykly for.
Niečo také.
Pre každý riadok, a potom pre každú hodnotu v riadok, budete k tlači
hodnota v tomto priestore.
Potom, čo ste sa vytlačiť všetky hodnoty v riadku, potom
Môžete vytlačiť nový riadok.
Nezabudnite, že príkaz na remízu Funkcia musí echo alebo odrážať objednávky
v inicializovaný funkciu.
>> Teraz, keď inicializovaný dosku a že ste vyvodiť to, že je čas, aby
užívateľ upraviť a aby ich pohyby.
Takže vo funkcii Fifteen.c, Program má vstup od užívateľa a
potom zavolá funkciu pohybu, odovzdaniu počtu na dlaždice, ktoré
užívateľ chce pohybovať.
Teraz, buďte opatrní.
To je skutočný počet dlaždíc a nie jeho aktuálnej pozície.
Takže, budete musieť hľadať dlaždice je Postoj, ktorý vie, kde to je.
>> Teraz by ste mali povoliť len užívateľovi vykonať ťah, či je to legálne.
Právny krok je nejaký dlaždice, ktoré je vedľa prázdne dlaždice.
To znamená, že výška a nižšie, aby doľava a doprava.
Takže budete musieť vedieť, kde prázdne dlaždice je tiež.
Teraz, za každý pohyb hľadáte Užívatelia dlaždice, ale to je asi
Nie je najlepšie hľadať prázdne dlaždice zakaždým, pretože to robíte
každý čas užívateľ chce pohybovať.
Takže namiesto toho, je to najlepšie, aby si spomenúť, kde prázdne dlaždice pomocou niektorej
rovnako pomenované premenné.
Takže akonáhle umožňujú užívateľovi, aby sa ich pohyby, ktoré sú dobre na ich
spôsob, ako vyhrávať hru Fifteen.
>> Ak chcete vyhrať hru Fifteen, dlaždíc musí byť v určitom poradí, a
vyhral funkcia kontroluje, či Hra je vyhraná.
Vracia TRUE, ak je hra vyhral a dlaždice sú v správnom poradí,
a False inak.
Takže vyhrať hru pätnásť, dlaždíc musí byť vzostupnom poradí, s
prázdne dlaždice na pravom spodnom rohu.
Tak ako sa vám zistiť, či používateľ sa presťahovala dosku do pravej
orientácia?
>> No, budete iterovat cez palubu a skontrolujte hodnoty, aby sa uistil, že
že sú na správnom mieste.
Ak to chcete vykonať, môžete použiť vnorené pre slučky rovnako ako vy
v žrebovaní a init.
Existuje niekoľko spôsobov, ako skontrolovať a overiť, či je doska
správne a víťazný formácie, hoci.
Ak pôjdete zľava doprava, počnúc z horného riadku dole, potom každý
číslo musí byť väčšie ako ten predchádzajúci.
Dávajte pozor na to, čo si ceníte si vybraný pre prázdne dlaždice hoci.
>> Alebo môžete použiť premennú čítač pre zabezpečiť, aby každá hodnota je na mieste, ak
môžete prísť s nejakým Vzorec reprezentovať to.
Takže bavte sa experimentovať s matematikou.
Potom, čo ste prišli na spôsob, návrat Pravda, akonáhle užívateľ vyhral hru.
Ale ak existuje hodnota je nesprávna, návrat False, užívateľ musí pokračovať v pohybe
pretože nevyhral hru.
Akonáhle sa rozhodnete túto kontrolu a spolu s initialize, kresliť, a pohybovať sa,
ste dokončili hru Fifteen.
Gratulujeme a baviť hrať.
Volám sa Zamyla a je to CS50.