This shows you the differences between two versions of the page.
pm:prj2021:agrigore:joc_x_si_0 [2021/05/31 02:24] irina.grigore0702 [Jurnal] |
pm:prj2021:agrigore:joc_x_si_0 [2021/05/31 09:27] (current) irina.grigore0702 |
||
---|---|---|---|
Line 44: | Line 44: | ||
* XPT2046_Touchscreen.h - librarie pentru touchscreen | * XPT2046_Touchscreen.h - librarie pentru touchscreen | ||
=== Detalii Implemetare === | === Detalii Implemetare === | ||
+ | Ca si structura de date am folosit un vector de int-uri pentru a retine starea tablei. | ||
+ | Pentru inceput desenez primul ecran cu ajutorul functiilor din libraria Adafruit_GFX.h. Dupa un delay prestabilit apare cel de-al doilea ecran unde jucatorul este pus sa aleaga X sau 0. In acest moment, programul asteapta ca ecranul sa fie atins, iar in functie de coordonatele x si y determina ce buton a fost apasat. In continuare, daca jucatorul a apasat pe X, pe ecran se va afisa mesajul "Player VS Arduino"" ceea ce inseamna ca player-ul incepe jocul, iar daca a apasat pe 0, mesajul afisat va fi "Arduiono VS Player", iar in acest caz arduino va incepe jocul, mai exact este apelata functia playGame(). Pentru ca arduino sa marcheze o casuta de joc, se retin pozitiile libere din vector, apoi se alege random una dintre aceste pozitii, iar in cazul player-ului in functie de coordonatele x si y determinate in urma atingerii ecranului, se verifica in ce casuta se incadreaza, iar apoi este desemnat semnul corespunzator pe ecran. Casutele sunt marcate pana cand numarul mutarilor disponibile ajunge la maxim sau pana cand pe linie/coloana/diagonala se afla numai X sau numai 0. Dupa terminarea jocului pe ecran va aparea un buton care permite reluarea jocului. Daca acesta este apasat, sunt reinitializare variabilele folosite, iar jucatorul este pus din nou sa aleaga. | ||
===== Rezultate obtinute ===== | ===== Rezultate obtinute ===== | ||
{{:pm:prj2021:agrigore:grigore_irina_1.jpeg?300|}} | {{:pm:prj2021:agrigore:grigore_irina_1.jpeg?300|}} | ||
Line 56: | Line 57: | ||
{{:pm:prj2021:agrigore:grigore_irina_6.jpeg?300|}} | {{:pm:prj2021:agrigore:grigore_irina_6.jpeg?300|}} | ||
* Este afisat mesajul "GAME OVER", alaturi de catigator, sau mesajul "DRAW" in caz de egalitate. De asemenea, exista posibilitatea de a relua jocul apasand pe butonul "Play Again". | * Este afisat mesajul "GAME OVER", alaturi de catigator, sau mesajul "DRAW" in caz de egalitate. De asemenea, exista posibilitatea de a relua jocul apasand pe butonul "Play Again". | ||
+ | === Demo === | ||
+ | https://www.youtube.com/watch?v=UWk9AUOiXZ4 | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
* Din punctul meu de vedere, acest proiect a fost unul interesant, din urma caruia am invatat lucruri noi. | * Din punctul meu de vedere, acest proiect a fost unul interesant, din urma caruia am invatat lucruri noi. | ||
* Ca si functionalitati suplimentare, poate fi implementat un algoritm mai inteligent care sa joace, si de asemenea, la jocuri repetate poate fi adaugat un scor care sa contorizeze cate meciuri au fost castigate de fiecare player. | * Ca si functionalitati suplimentare, poate fi implementat un algoritm mai inteligent care sa joace, si de asemenea, la jocuri repetate poate fi adaugat un scor care sa contorizeze cate meciuri au fost castigate de fiecare player. | ||
===== Download ===== | ===== Download ===== | ||
- | * TBD | + | * {{:pm:prj2021:agrigore:tic_tac_toe_cod_sursa.zip|}} |
===== Jurnal ===== | ===== Jurnal ===== | ||
- | * 26.04 -> alegere tema | + | * 26.04: alegere tema |
+ | * 04.05: comadare piese | ||
+ | * 14.05: conectarea componentelor | ||
+ | * 17.05: realizarea soft-ului | ||
+ | * 28.05: realizare schema electrica | ||
+ | * 29.05: finalizare proiect | ||
+ | * 30.05: filmare demo, documentatie | ||
- | ===== Bibliografie/Resurse ===== | + | ===== Bibliografie/Resurse ===== |
+ | * https://www.youtube.com/watch?v=4DtuOeeYHys | ||
+ | * https://github.com/PaulStoffregen/XPT2046_Touchscreen | ||
+ | * https://github.com/adafruit/Adafruit_ILI9341 | ||
+ | * https://github.com/adafruit/Adafruit-GFX-Library | ||
+ | * https://ocw.cs.pub.ro/courses/pm/lab/lab5-2021 | ||
+ | {{:pm:prj2021:agrigore:joc_x_si_0_pdf.pdf|}} |