>> ZAMYLA CHAN: Să Distreaza-te cu Cincisprezece.
Cincisprezece este primul joc pe care îl obțineți să pună în aplicare și este interactiv.
Acum, să nu vă faceți griji.
Nu trebuie să scrie Toată treaba asta te.
Uită-te la codul de distribuție, deoarece un mulțime de structura de joc este deja
creat pentru tine.
Se acceptă și analizează o linie de comandă argument de utilizator și creează un
bord bazate pe acea intrare.
Se verifică dacă jocul este câștigat și ieșirile Odată ce utilizatorul a câștigat jocul.
Și pentru a câștiga jocul, acesta devine intrare de la utilizator și
apeleaza functia Mutare.
>> Așa că am de gând să fie punerea în aplicare a patru Funcțiile pentru jocul de cincisprezece ani,
init, trage, mișcare, și a câștigat.
În primul rând, haideți să abordeze de inițializare.
În inițializare, pentru Initialize, ne reprezintă bord într-o gamă întreg 2D.
Și aceasta este o variabilă globală numită bord cu dimensiuni MAX, și MAX,
dimensiunile maxime ale consiliului.
Acum, dimensiunea reală a consiliului este dată de către utilizator, reprezentată în
număr întreg d, care ar putea să fie mai mică MAX.
Dar, în C, nu poți redimensiona tablouri, așa că te-ai blocat cu
că dimensiunea maximă.
>> De locuri de muncă în inițializare este de a popula valorile de bord
cu valoarea corectă.
Acum, am văzut tablouri 1D, dar cum matrice 2D funcționează?
Există un indice de rând, la zero indexate ca întotdeauna, și apoi, de asemenea, de
coloana.
Și veți umple grila dvs. în valori descrescătoare, la fel ca aceasta.
Grid, 0, 0, 0 rând, coloană 0, este de 8, grila 0, 1 este de 7.
Acesta este un exemplu de unde d, mic d, este de 3.
>> Acum, placa în cincisprezece trebuie, de asemenea, conțin o țiglă gol, dacă ai vreodată
a jucat cu jocul fizic.
Dar, de bord este un tablou întreg, așa toate valorile trebuie să fie numere întregi.
Deci, este de până la tine pentru a decide un întreg valoare să reprezinte o piesă goală.
Pentru a inițializa placa dvs., puteți utiliza structurile bucla pentru conțin
de stat începând de bord, unde bord i j reprezintă elementul de la
rândul i și coloana j.
Ei încep în ordine descrescătoare și, amintiți-vă, că în cazul în care numărul de plăci
este impar, atunci ai de gând să trebuie să schimba locația 2 și de 1.
Deci nu, ne-am nostru bord inițializat.
>> Acum, că ne-am initializat nostru bord, e timpul să-l atragă.
Remiză va imprima starea actuală a bord, dar trebuie să vă asigurați
pentru a imprima gresie în aceeași ordine pe care le-ați inițializat.
Și tu, de asemenea, nevoie pentru a formata numerele corect.
Pentru că am putea avea o singură cifră și de două cifre, apoi pe care doriți să
imprima un spațiu gol, înainte de orice numere de o singură cifră.
Puteți utiliza că, prin utilizarea substituentul -.
>> Dar amintiți-vă spațiul nostru gol.
Noi nu vrem să imprimați numărul real pe care le-am ales pentru a reprezenta
ca spațiu gol în bord, dar am, de asemenea, Nu doriți să imprimați nimic.
Deci, ce puteți face este de a defini un simbol sau caracter pentru a reprezenta
Placi de gol.
În exemplele anterioare, am ales un subliniere, și apoi doar să imprimați
că ori de câte ori ajunge la martor spațiu în funcția draw.
>> Deci, trage va fi imbricate pentru bucle.
Ceva de genul asta.
Pentru fiecare rând, și apoi pentru fiecare valoare rând, ai de gând să imprima
valoare în acest spațiu.
După ce ați imprimat toate valorile în rândul, apoi
poate imprima o nouă linie.
Amintiți-vă că ordinul de tragere dvs. funcție trebuie să ecou sau oglinda ordinea
în funcția inițializat.
>> Acum, că ați inițializat bord și pe care l-ai desenat, e timpul să lase
utilizatorul edita și de a face miscarile lor.
Deci, în funcție Fifteen.c, Programul ia de intrare de la utilizator și
apoi solicită funcția mișcare, trecând a numărului de țiglă care
utilizator dorește să se mute.
Acum, fii atent.
Acesta este numărul real de tigla și nu poziția sa actuală.
Deci, veți avea nevoie pentru a căuta țiglă lui măsură să știu unde este.
>> Acum, ar trebui să permită numai utilizatorului pentru a face o mutare, dacă e legal.
O mutare este nici o țiglă care este adiacent la țiglă gol.
Asta înseamnă că, de mai sus și mai jos, pentru a stânga și la dreapta.
Deci, va trebui să știe unde tigla gol este la fel de bine.
Acum, pentru fiecare mișcare pe care o căutați tigla de utilizatori, dar este, probabil,
nu cel mai bun pentru a căuta țiglă gol de fiecare dată pentru că o faci
fiecare dată utilizator dorește să se mute.
Deci, în schimb, cel mai bine este să vă amintiți unde tigla gol este utilizarea unor
bine numit variabile.
Deci, odată ce permite utilizatorului să-și facă mișcări, ele sunt bine în lor
mod de a câștiga jocul de cincisprezece.
>> Pentru a câștiga jocul de cincisprezece, gresie trebuie să fie într-o anumită ordine, și
funcția câștigat verifică dacă jocul este câștigat.
Se returnează Adevărat dacă jocul este câștigat și gresie sunt în ordinea corectă,
și false în caz contrar.
Deci, pentru a câștiga jocul de cincisprezece ani, gresie trebuie să fie crescătoare, cu
Placi de gol la colțul din dreapta jos.
Deci, cum a face tu a verifica dacă utilizatorul sa mutat placa în dreapta
orientare?
>> Ei bine, veți repeta peste bord și verifica valorile pentru a vă asigura că
acestea sunt în locul potrivit.
Pentru a face acest lucru, aveți posibilitatea să utilizați imbricate pentru bucle la fel ca le-ai făcut
la egalitate și în init.
Există câteva moduri de a verifica și valida dacă placa este
corectă și un câștig formarea, deși.
Dacă te duci la stânga la dreapta, începând cu din rândul de sus în jos, apoi fiecare
număr trebuie să fie mai mare decât cel anterior.
Fii atent la ceea ce valoare ai ales pentru țiglă dvs. gol, deși.
>> Sau ai putea folosi o variabilă contor de asigure că fiecare valoare este în loc, dacă
ți-a venit cu un fel de formulă pentru a reprezenta aceasta.
Astfel încât să se distreze experimenteze cu matematica.
Odată ce ați venit cu un mod, revenire Adevărat odată ce utilizatorul a câștigat jocul.
Dar, în cazul în care orice valoare este incorectă, revenire Fals, utilizatorul trebuie să continue să acționeze
pentru că ei nu au câștigat jocul.
Odată ce ați pune în aplicare această verificare și, de-a lungul cu Initialize, desena, și pentru a muta,
ați terminat jocul de cincisprezece.
Felicitări și au joc distractiv.
Numele meu este Zamyla și acest lucru este CS50.