This shows you the differences between two versions of the page.
pm:prj2021:avaduva:xsi0 [2021/05/22 21:21] cristina.balasoiu |
pm:prj2021:avaduva:xsi0 [2021/05/22 21:56] (current) cristina.balasoiu |
||
---|---|---|---|
Line 21: | Line 21: | ||
* Keypad 4*4 | * Keypad 4*4 | ||
* LCD | * LCD | ||
- | * Rezistenta | + | * 2 rezistente |
* Potentiometru | * Potentiometru | ||
* Pushbutton | * Pushbutton | ||
Line 37: | Line 37: | ||
- LiquidCrystal.h (pentru ecranul LCD) | - LiquidCrystal.h (pentru ecranul LCD) | ||
* algoritmul: | * algoritmul: | ||
- | Algoritmul creeaza o mapare intre butoanele 1-9 ale keypad-ului si cele 9 leduri conectate pentru a simula tabla de joc. Fiecare apasare a unuia dintre butoanele mentionate reprezinta o mutare. Se utilizeaza o variabila player initiata cu 1 pentru a retine jucatorul curent. Aceasta poate avea valorile 1 sau -1. La fiecare mutare se face switch intre jucatori (player *= -1) pentru a aprinde ledul corespunzator butonului apasat in culoarea jucatorului corespunzator si se verifica daca s-a creat un sir consecutiv de 3 culori identice pe oricare linie, coloana sau diagonala sau, in caz contrar, daca tabla este plina (remiza). Daca s-a detectat oricare dintre cele 3 rezultate posibile de finalizare a jocului (X castiga, 0 castiga sau remiza), acesta va fi afisat pe ecranul LCD impreuna cu scorul. Exista posibilitatea de incepere a unui joc nou prin apsarea butonului de reset, moment in care ledurile se vor intoarce la culoarea default (alb), matricea folosita pentru retinerea apasarilor efctuate de jucatori e reinitiata iar rezultatul jocului anterior este sters de pe ecranul LCD. | + | Algoritmul creeaza o mapare intre butoanele 1-9 ale keypad-ului si cele 9 leduri conectate pentru a simula tabla de joc. Fiecare apasare a unuia dintre butoanele mentionate reprezinta o mutare. Se utilizeaza o variabila player initiata cu 1 pentru a retine jucatorul curent. Aceasta poate avea valorile 1 sau -1. La fiecare mutare se face switch intre jucatori (player *= -1) pentru a aprinde ledul corespunzator butonului apasat in culoarea jucatorului corespunzator si se verifica daca s-a creat un sir consecutiv de 3 culori identice pe oricare linie, coloana sau diagonala sau, in caz contrar, daca tabla este plina (remiza). Daca s-a detectat oricare dintre cele 3 rezultate posibile de finalizare a jocului (X castiga, 0 castiga sau remiza), acesta va fi afisat pe ecranul LCD impreuna cu scorul. Exista posibilitatea de incepere a unui joc nou prin apsarea butonului de reset, moment in care ledurile se vor intoarce la culoarea default (alb), matricea folosita pentru retinerea apasarilor efctuate de jucatori e reinitiata iar rezultatul jocului anterior este sters de pe ecranul LCD. |
+ | ==== Functii folosite ==== | ||
+ | * setup | ||
+ | - pornirea LCD-ului | ||
+ | - configurarea LCD-ului | ||
+ | - afisarea pe LCD a mesajului default | ||
+ | - initializarea led-urilor | ||
+ | * loop | ||
+ | - primirea datelor de la keypad si de la butonul de reset | ||
+ | - setarea culorilor ledurilor | ||
+ | - afisarea mesajului corespunzator in functie de rezultatul jocului | ||
+ | * checkWin | ||
+ | - verifica stateul jocului dupa fiecare mutare (daca a castigat X sau 0 sau daca e remiza sau daca jocul continua) | ||
===== Rezultate obtinute ===== | ===== Rezultate obtinute ===== | ||
Line 49: | Line 61: | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
- | ===== Download ===== | + | ==== Download ==== |
{{:pm:prj2021:avaduva:balasoiu_cristina_ioana_333cc_resurse.zip|}} | {{:pm:prj2021:avaduva:balasoiu_cristina_ioana_333cc_resurse.zip|}} | ||
- | ===== Jurnal ===== | + | ==== Jurnal ==== |
* Etapa 1: | * Etapa 1: | ||
Dezvoltarea codului de baza si a circuitului pe platforma [[https://www.tinkercad.com/]] pentru a putea realiza mai usor o lista cu piesele necesare pentru ideea de proiect aleasa. | Dezvoltarea codului de baza si a circuitului pe platforma [[https://www.tinkercad.com/]] pentru a putea realiza mai usor o lista cu piesele necesare pentru ideea de proiect aleasa. | ||
Line 59: | Line 71: | ||
Asamblarea efectiva a partii hardware, adaptarea codului si testarea rezultatului final | Asamblarea efectiva a partii hardware, adaptarea codului si testarea rezultatului final | ||
- | ===== Bibiliografie/Resurse ===== | + | ==== Bibiliografie/Resurse ==== |
[[https://ocw.cs.pub.ro/courses/pm/prj2021/avaduva/xsi0]] | [[https://ocw.cs.pub.ro/courses/pm/prj2021/avaduva/xsi0]] | ||
[[https://ocw.cs.pub.ro/courses/pm/prj2021/avaduva/xsi0?do=export_pdf]] | [[https://ocw.cs.pub.ro/courses/pm/prj2021/avaduva/xsi0?do=export_pdf]] |