>> ZAMYLA Chan: Ajmo Zabavite se s petnaest godina.
Petnaest je prva igra koja ste dobili provesti i to je interaktivni.
Sad, ne brinite.
Ne morate pisati Cijela stvar se.
Pogledajte distribucijskom kodu, jer Mnogo igri strukture već
postaviti za vas.
Ona prihvaća i analizira naredbenog retka Argument od korisnika i stvara
odbora, temeljena na taj ulaz.
Ona provjerava da li se igra dobiva i izlazi Nakon što korisnik je pobijedio u igri.
A za pobjedu u igri, ona dobiva input od korisnika i
poziva Move funkciju.
>> Tako ćemo se provođenje četiri Funkcije za igru ​​od petnaest,
init, crtanje, potez, i pobijedio.
Prvo, neka se borila init.
U init, za inicijalizaciju, zastupamo pansion u 2D cjelobrojnog polja.
A to je globalna varijabla zove ploču dimenzija MAX i Max,
maksimalna veličina ploče.
Sada, stvarna dimenzija ploči je dano od strane korisnika, koju zastupa u
cijeli broj d, što bi moglo biti manja od MAX.
No, u C, ne možete promijeniti veličinu polja, tako da ste zapeli s
da je maksimalna dimenzija.
>> Vaš zadatak u init je naseliti vrijednosti na ploči
uz odgovarajuću vrijednost.
Sada smo vidjeli 1D polja, ali Kako 2D nizovi raditi?
Tu je indeks zaredom, nula indeksirane kao i uvijek, a onda i od
stupac.
A vi ćete ispuniti svoju mrežu u u opadajuće vrijednosti, baš kao što je ovaj.
Grid, 0, 0, 0 red, stupac 0, što je 8, grid 0, 1 je 7.
Ovo je za primjer gdje d, malo d, je 3.
>> Sada, pansion u petnaest također mora sadrže prazan pločice, ako ste ikada
igrao s fizičkim igri.
No, Odbor je cijeli niz, pa sve vrijednosti moraju biti cijeli.
Dakle, to je na vama je da odlučite cijeli broj Vrijednost za zastupanje prazan pločice.
Da bi započeti svoj odbor, možete koristiti Strukture petlje da sadrže
počevši stanje odbora, gdje je ploča I j predstavlja element na
red i i stupcu j.
Oni će početi u redoslijedu i, zapamtite, da ako broj pločica
neparan, onda ćeš se morati mijenjati položaj 2 i od 1.
Dakle, postoji, mi imamo inicijaliziran odbora.
>> Sada, da smo inicijaliziran naše odbora, vrijeme je da ga izvući.
Ždrijeb će se ispisati trenutno stanje odbora, ali vi morate biti sigurni
ispisati pločice u istom redoslijedu da ste ih ponište.
I također je potrebno formatirati Vaši brojevi ispravno.
Budući da smo mogli imati jednu znamenku i dvoznamenkasta, onda želite
ispisati prazan prostor prije bilo jednoznamenkastim brojevima.
Igrate se pomoću rezervirano mjesto -.
>> Ali zapamtite našu prazan prostor.
Ne želimo ispisati stvarni broj da smo izabrani da predstavljaju
da je prazan prostor u brodu, ali smo također ne želim ispisati ništa.
Dakle, što možete učiniti jest odrediti simbol ili lik za zastupanje
prazan pločice.
U prethodnom primjeru sam izabrao naglašavaju, a onda samo ispisati
da kad god dođete prazna prostora u funkciji izvlačenja.
>> Dakle, privući će uklopljeni za petlje.
Nešto kao što je ovaj.
Za svaki redak, a zatim za svaku vrijednost u red, idete za ispis
Vrijednost u ovom prostoru.
Nakon što ste ispisali sve vrijednosti u redu, onda
može ispisati novu liniju.
Sjetite se da je nalog za vaše izvlačenje Funkcija mora jeka ili ogledalo redoslijed
u svom postavljene funkcije.
>> Sada kada ste inicijaliziran odbora i da ste ga izvući, to je vrijeme da
Korisnik ga urediti i napraviti svoje poteze.
Tako je u funkciji Fifteen.c, Program traje unos od korisnika i
zatim poziva potez funkciju, prolazi broja pločica koje
korisnik želi pomaknuti.
Sada, budite oprezni.
To je stvarni broj pločica a ne njezin stvarni položaj.
Dakle, morat ćete tražiti pločica je Položaj znati gdje je to.
>> Sada, samo treba dopustiti korisnik napraviti potez, ako je legalno.
Pravni potez je bilo crijep koji je u susjedstvu na prazan pločice.
To znači, gore i dolje, na lijevo i desno.
Dakle, morat ćete znati gdje prazan crijep je kao dobro.
Sada, za svaki potez ste u potrazi za Korisnici crijep, ali to je vjerojatno
nije najbolje tražiti prazan pločice svaki put, jer ti to radiš
svaki put korisnik želi pomaknuti.
Dakle, umjesto da, to je najbolje da se sjetiti gdje prazan pločice koristi neke
i nazvana varijable.
Dakle, nakon što omogućuju korisniku da bi im poteze, oni su na dobrom
način za pobjedu od petnaest.
>> Kako pobijediti u igri petnaest pločica moraju biti u određenom redoslijedu, te
osvojio funkcija provjerava jesu li Igra je dobila.
To vraća True ako je igra dobila i pločice su u ispravnom redoslijedu,
Lažno i inače.
Dakle, za pobjedu u igri petnaest pločica moraju biti povećanje reda, s
prazan pločice u donjem desnom kutu.
Pa kako se provjeriti je li korisnik je preselio pločicu u pravu
orijentacije?
>> Pa, što će ponoviti više odbora i provjeriti vrijednosti kako bi bili sigurni da je
oni su na pravom mjestu.
Da biste to učinili, možete koristiti ugniježđeni za petlje baš kao i ti
u ždrijebu i init.
Postoji nekoliko načina za provjeru i provjeriti da li je ploča
točne i pobjednički Formiranje, ipak.
Ako idete s lijeva na desno, s početkom od vrha prema dolje redu, onda je svaki
broj mora biti veći od prethodni.
Budite oprezni o tome što cijenite sam izabrao za svoj prazan pločice ipak.
>> Ili možete koristiti varijablu osporavanju Osigurati da svaka vrijednost je na mjestu, ako
da se s nekom vrstom Formula za zastupanje ovo.
Tako se zabaviti eksperimentiranje s matematikom.
Nakon što ste se s puta, povratak Istina jednom korisniku je pobijedio u igri.
Ali, ako bilo koja vrijednost je netočna, povratak Netočno, korisnik mora nastaviti kretanje
jer oni nisu osvojili igru.
Nakon što provede ovu provjeru i, zajedno s inicijalizirati, crtanje i premjestiti,
ste završili igru ​​od petnaest.
Čestitam i zabaviti.
Moje ime je Zamyla i to je CS50.