Implementarea jocului X si 0 cu 2 jucatori reprezentati de cate o culoare diferita. Pozitia se poate alege prin intermediul a 5 butoane, dintre care 4 de selectare a pozitiei si unul de confirmare. La sfarsitul jocului se va afisa castigatorul sau “DRAW” in caz de remiza.
Jocul va fi transpus pe o matrice 8×8 de leduri. Pe ecranul LCD va fi afisat scorul si atunci cand se termina un joc se va afisa castigatorul. Mutarile se vor face cu cele 2 telecomenzi cu infrarosu. Un jucator poate folosi telecomanda doar cand este randul sau.
Lista de piese:
Schema electrica
Ecran LCD | Arduino UNO |
---|---|
VSS | GND |
VDD | 5V |
V0 | GND |
RS | 12 |
RW | GND |
E | 11 |
D4 | 6 |
D5 | 5 |
D6 | 4 |
D7 | 3 |
A | 3.3V |
K | GND |
Senzor IR | Arduino UNO |
Power | 5V |
GND | GND |
Out | 8 |
Matrice Led | Arduino UNO |
VCC | 5V |
GND | GND |
DIN | 7 |
CS | 5 |
CLK | 6 |
Descrierea codului aplicaţiei (firmware):
In urma implementarii proiectului am folosit urmatoarele functii:
Se folosesc butoanele de la 1 la 9 de pe telecomanda si butonul OK pentru inceperea unui joc. Fiecare mutare valida (pe pozitii care nu au fost folosite) incrementeaza numarul de mutari totale si se modifica variabila start (poate avea 3 valori: 0 cand nu a inceput jocul, 1 daca urmeaza jucatorul 1 si 2 daca urmeaza jucatorul 2). Functia checkWin se apeleaza dupa ce numarul total de mutari trece de 5 (nu se poate castiga pana atunci). La sfarsitul unui joc se afiseaza pe LCD castigatorul sau “DRAW” in caz de remiza si se reseteaza matricea de LED-uri. De asemenea, se tine cont si de scor, care va fi afisat in timpul jocului. Am ales un model pentru X si unul pentru 0, modele care se vor afisa pe matrice in functie de inputul primit de la telecomanda, pe pozitia corespunzatoare. Inputul de la telecomanda este prelucrat intr-un switch cu toate codurile de care avem nevoie de la ea.