Îmi amintesc bine în această prelegere că vreau să vă dau o altă provocare.
Este legat de funcții.
Dar această provocare va fi mai mult despre împărțirea și cucerirea.
Va fi mai mult despre organizarea programului sau a modulelor.
Va fi mai mult despre rezolvarea problemelor.
Ce vreau să faci e că vreau să scrii un joc tactic.
Acest lucru vă va ajuta să deveniți un rezolvător de probleme mai bun și vă
va ajuta să vă organizați programul în jurul funcțiilor.
De asemenea, veți utiliza o matrice.
Va trebui să dai seama cum să formulezi anumite date, dar va fi o simulare a jocului
tic tac toe.
Nu vom scrie un computer.
Acesta va fi Player 1 versus player 2.
Vreau să scrii un program care să joace tic tac toe.
Sperăm că toată lumea este familiarizată cu acest program sau acest joc ar trebui să spun că este doar un
joc care este jucat trei câte trei grilă cu doi jucători.
Luați rândul lui X și O.
Sperăm că sună un clopot.
Nu am vrut să mai joc și să explic acest joc, dar sperăm că dacă un tic
tac toe ar fi făcut o demonstrație mică a modului în care funcționează și cum aș astepta ieșirea să joace.
Dar este un joc de bază tic tac toe ceea ce vreau să fac este că probabil că va trebui
să creați o matrice pentru a reprezenta tabloul propriu-zis de trei-trei grilă.
Cred că puteți scăpa doar cu crearea unei singure matrice de dimensiuni.
De fapt, puteți crea o matrice 2D pentru a reprezenta rândurile, iar coloanele 2D ar fi probabil
mai intuitive, dar ar putea fi mai ușor.
Poate fi un pic mai greu de vizualizat în codul dvs., dar oricum funcționează.
Cel mai bun lucru despre programare este că există multe soluții la o problemă.
Îți voi spune una dintre soluțiile mele și abordarea mea de proiectare.
Dar nu ezitați să schimbați design-ul este mult timp folosiți constructele C corect.
Asta-i tot ce-mi pasă.
Vreau să învățați cum să utilizați C atâta timp cât programul dvs. este modularizat și este organizat și
ușor de întreținut și există cod de calitate.
De asta mă îngrijorez.
Deci, o modalitate de a implementa o singură cale reprezintă reprezentarea tabloului drept o singură matrice dimensională cu
10 elemente.
Motivul pentru care spun elementele aici este că nu vreau să folosești zero aceste 10
elemente vor reprezenta tabla, dar ele vor reprezenta, de asemenea, coordonatele de pe tablă le-au trimis pe toate și le-ar
arăta cum merg pentru a lucra, dar modul în care
veți alege de fapt caseta pe care doriți să o desenați se va baza pe numărul elementului.
În plus față de crearea unui copac pentru bord trebuie să încercați să vă gândiți la modul în care veți
încerca să eliminați această problemă în modul în care o veți organiza.
Mă gândesc foarte puțin la faptul că vei avea nevoie de cel puțin trei funcții, probabil mai mult,
dar trebuie să ai o funcție Falk care să verifice câștigătorii.
Acest lucru se va vedea doar dacă o persoană a câștigat jocul sau pot chiar să verifice pentru o egalitate.
Ar trebui să aveți o funcție care atrage bordul, pentru că veți desena bordul după
rândul fiecărui jucător.
Și tu o să faci să folosești această funcție pentru a marca tabla.
Acest lucru se întâmplă atunci când utilizatorul dorește să introducă X sau O într-o anumită cutie.
Aveți nevoie de o funcție pentru a seta acea casetă ca pe un X sau știi ce se va întâmpla, probabil că probabil
că populezi matricea cu acel X-URL.
Și astfel puteți privi la matrice pentru a vedea dacă ați câștigat sau ați pierdut.
Deci, în tabela marcată vă puteți permite să verificați o selecție nevalidă.
Deci, dacă selecțiile valide au fost 139 și utilizatorul a introdus 10 ați spune că nu puteți face asta.
Încearcă din nou.
Jocul ar trebui să fie prietenos cu utilizatorul ar trebui să fie intuitiv de utilizat în măsura în care o perspectivă a utilizatorului și ar
trebui să fie organizat în măsura în care o perspectivă de programare se gândesc cu adevărat la acest lucru.
Luați niște planificări și faceți planuri și scoateți niște hârtie.
Începeți să scrieți câteva sugestii despre modul în care veți aborda această problemă și ce
funcții veți avea nevoie să utilizați.
Modul în care mă gândesc la asta este să merg la Ron să-ți arăt un mic demo.
Nu vă voi arăta niciun cod sursă, dar asta este ceea ce văd că jocul va arăta atunci
când îl executăm.
Ei bine, poate un mic titlu care spune că e jocul.
Și apoi, de asemenea, o mică informație despre jucător.
Jucătorul unu va fi x player 2 va fi.
Oh.
Amintiți-vă că nu trebuie să jucați computerul pe care îl puteți pune în fiecare rând.
Deci, va trebui să jucați acest joc cu un prieten care stă lângă tine și ar trebui
să-ți spună unde să pună numărul.
Dacă deveniți cu adevărat ambițios, puteți scrie jocul pentru a juca împotriva
unui computer, dar veți observa că cele trei-trei grilă are numere care pot fi utilizate inițial pentru a intra în aceste numere.
Deci, dacă joci sau vrei să-ți iei rândul și reprezintă x în funcție de numărul pe care îl introduc. Asta e locul
în care va fi plasat X.
Deci, imprimam acel grup.
Afișăm tabla și apoi îi spunem și utilizatorul al cărui rând este și îi spunem să introducă un număr.
Deci, în acest caz, voi merge mai departe și voi intra în numărul doi și voi reveni.
Și ce se va întâmpla după ce voi reveni va vedea de fapt dacă cineva a câștigat.
Va curăța ecranul și va redeschide tabla.
Așa că după ce am lovit doi și ați intrat, veți observa că încă mai am titlul.
M-am gandit ca un jucator a vrut jucatorul 2, dar acum in Box 2 am un X.
Deci ce altceva ar fi trebuit să fac acolo este că ar fi trebuit să verific înainte
de a afișa tabla dacă am câștigat sau nu am câștigat.
Și, evident, acesta este primul secol, așa că nu avem nici dacă nu avem un câștigător sau o remiză.
Acum o să cer jucătorului să introducă un număr și apoi să poată alege orice număr aici.
Acum, dacă am introdus un număr invalid ca 10, ar trebui să-mi spună că este nevalid și el ar trebui să-mi permit să fac
o altă mișcare.
Dacă aș răspunde la două ar trebui să fie, de asemenea, invalid.
Deci, dacă intru și eu.
De asemenea, se spune că este nevalid deoarece 2 este deja luat de x.
Deci, programul mi-a permis să încerc din nou.
Puteai să scapi de rândul lor, dar asta nu e corect.
Deci, acum voi spune doar unde vreau să joc.
Mă simt că voi spune cinci că voi pune o mișcare valabilă.
O să redescoarcă bordul și un jucător 0 și 5 spune acum jucătorul 1 și continuați să faceți acest lucru până când aveți
un câștigător sau o remiză.
Voi spune doar nouă.
Am un topor unde sunt intrări valide sunt 1 3 4 6 7 și 8.
Voi spune trei.
Și să încercăm să-l câștigăm pe X.
Deci acum x va merge în 8 și voi trage 0 și 6 doar pentru a vă arăta că jocul lucrează cu câștigătorul.
Și apoi am pus 7 4 x joc ar trebui să fie acum peste fiecare viraj.
Jucătorul 1 câștigă și chiar mi-a sunat puțin.
Am făcut niște lucruri frumoase acolo.
Deci, jocul este de peste jucătorul câștigat câștigă și ar trebui să se întâmple, de asemenea, în cazul în care jucătorul 2 câștigă sau dacă există o remiză.
Așa că gândiți-vă cum doriți să atacați această problemă.
Program mic mic.
Voi trece printr-o soluție și voi furniza codul sursă în următoarea conferință.
Mulțumesc.