This shows you the differences between two versions of the page.
pm:prj2024:fgul:melania.marian [2024/05/26 18:53] melania.marian [Rezultate Obţinute] |
pm:prj2024:fgul:melania.marian [2024/05/26 20:06] (current) melania.marian [Rezultate Obţinute] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Wordle ====== | ====== Wordle ====== | ||
- | <note> | + | |
Nume: Marian Melania-Valentina | Nume: Marian Melania-Valentina | ||
Grupă: 331CC | Grupă: 331CC | ||
- | </note> | + | |
===== Introducere ===== | ===== Introducere ===== | ||
Line 15: | Line 15: | ||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | Utilizatorul interacționează cu jocul prin intermediul tastaturilor matriceale 4x4, fiecare literă fiind reprezentată printr-un buton al tastaturilor. De asemenea, există pe a doua tastatură un buton ce are asociată acțiunea de enter(înregistrarea cuvântului în joc) și un buton cu acțiunea de ștergere a unei litere din cuvânt. Pe ecranul LCD există un buton de reset, a cărui apăsare declanșează reînceperea jocului. Întregul joc este afișat pe ecranul LCD, iar în momentul finalizării jocului se aprinde unul dintre cele două led-uri, în funcție de rezultatul jucătorului: dacă cuvântul a fost ghicit, se aprinde led-ul verde, iar dacă jucătorul nu a ghicit cuvântul, se aprinde cel roșu. | + | Utilizatorul interacționează cu jocul prin intermediul tastaturilor matriceale 4x4, fiecare literă fiind reprezentată printr-un buton al tastaturilor. De asemenea, există pe a doua tastatură un buton ce are asociată acțiunea de Enter (înregistrarea cuvântului în joc) și un buton cu acțiunea de ștergere a unei litere din cuvânt. Pe ecranul LCD există un buton de reset, a cărui apăsare declanșează reînceperea jocului. Întregul joc este afișat pe ecranul LCD, iar în momentul finalizării jocului se aprinde unul dintre cele două led-uri, în funcție de rezultatul jucătorului: dacă cuvântul a fost ghicit, se aprinde led-ul verde, iar dacă jucătorul nu a ghicit cuvântul, se aprinde cel roșu. |
{{:pm:prj2024:fgul:schema_bloc_meliv2.png?500|}} | {{:pm:prj2024:fgul:schema_bloc_meliv2.png?500|}} | ||
Line 155: | Line 155: | ||
==== Verificarea cuvintelor ==== | ==== Verificarea cuvintelor ==== | ||
- | Pentru verificarea literelor comune dintre cuvântul introdus și cel care trebuie ghicit, am creat funcția checkWord, care returnează un șir ce conține 5 caractere(0, 1 sau 2) corespunzătoare literelor, care este folosit de funcția validateGuess pentru a crea animația astfel: | + | Pentru verificarea literelor comune dintre cuvântul introdus și cel care trebuie ghicit, am creat funcția checkWord(), care returnează un șir ce conține caracterele 0, 1 sau 2 corespunzătoare celor 5 litere, care este folosit de funcția validateGuess() pentru a crea animația astfel: |
* 0 - pătratul este colorat gri | * 0 - pătratul este colorat gri | ||
* 1 - pătratul este colorat galben | * 1 - pătratul este colorat galben | ||
Line 181: | Line 181: | ||
* "YOU WIN!:)" - câștig | * "YOU WIN!:)" - câștig | ||
* "YOU LOSE!:( The word was cuvânt_de_ghicit" - pierdere | * "YOU LOSE!:( The word was cuvânt_de_ghicit" - pierdere | ||
- | * | + | |
Am implementat această funcționalitate folosind întreruperi, care se declanșau în urma detectării trecerii pinilor led-urilor din starea LOW în starea HIGH. De asemenea, am configurat led-urile pe pinii 2 și 3, care suportă întreruperi pe ATMEGA. | Am implementat această funcționalitate folosind întreruperi, care se declanșau în urma detectării trecerii pinilor led-urilor din starea LOW în starea HIGH. De asemenea, am configurat led-urile pe pinii 2 și 3, care suportă întreruperi pe ATMEGA. | ||
Line 196: | Line 196: | ||
tft.setTextSize(4); | tft.setTextSize(4); | ||
tft.print("YOU WIN!:)"); | tft.print("YOU WIN!:)"); | ||
+ | } | ||
+ | |||
+ | // funcția ISR pentru pierdere | ||
+ | void ISRPierdere() { | ||
+ | tft.setTextColor(TFT_RED); | ||
+ | tft.setCursor(70, 420); | ||
+ | tft.setTextFont(1); | ||
+ | tft.setTextSize(3); | ||
+ | |||
+ | tft.print("YOU LOSE!:("); | ||
+ | |||
+ | tft.setTextColor(TFT_WHITE); | ||
+ | tft.setCursor(55, 450); | ||
+ | tft.setTextFont(1); | ||
+ | tft.setTextSize(2); | ||
+ | |||
+ | tft.print("The word was "); | ||
+ | tft.setTextColor(TFT_GREEN); | ||
+ | tft.print(selected_word); | ||
} | } | ||
</code> | </code> | ||
Line 201: | Line 220: | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | În aceste poze se observă aspectul ecranului LCD în urma câștigării sau pierderii unui joc. | + | În aceste poze se observă aspectul jocului în urma câștigării sau pierderii unui joc. |
+ | {{:pm:prj2024:fgul:joc_castigat_meli.jpeg?300|}} {{:pm:prj2024:fgul:joc_pierdut_meli.jpeg?300|}} | ||
+ | |||
+ | Am înregistrat, de asemenea, și un videoclip cu o demonstrație a jocului: | ||
+ | [[https://youtu.be/dMNiMV62YKY?si=VYDA2w41k3JlcXBG|Wordle - Proiect PM]] | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
Line 211: | Line 234: | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
- | <note tip> | + | * 22.04 - Alegere temă proiect |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | * 30.04 - Creare pagină OCW |
- | </note> | + | * 04.05 - Comandare componente hardware |
+ | * 05.05 - Documentație inițială OCW | ||
+ | * 16.05 - Schemă electrică + testare componente hardware | ||
+ | * 19.05 - Finalizare hardware | ||
+ | * 25.05 - Finalizare software | ||
+ | * 26.05 - Finalizare pagină OCW | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
=== Resurse Hardware === | === Resurse Hardware === | ||
- | [[https://www.optimusdigital.ro/ro/|Optimus Digital]] - achiziționarea componentelor hardware | + | * [[https://www.optimusdigital.ro/ro/|Optimus Digital]] - achiziționarea componentelor hardware |
=== Resurse Software === | === Resurse Software === |