X si 0

Introducere

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.

Descriere generală

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.

Schema bloc

Hardware Design

Lista de piese:

  • Breadboard HQ
  • Modul cu Matrice de LED-uri MAX7219
  • Telecomandă și Receptor Infraroșu (2)
  • Fire Colorate Mamă-Tată
  • Fire Colorate Tată-Tată
  • Fire Colorate Mamă-Mamă
  • Modul LCD 1602
  • Arduino

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

Software Design

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare: Arduino IDE 1.8.19
  • librării şi surse 3rd-party:
    • LiquidCrystal.h (ecran LCD)
    • MaxMatrix.h (matricea led 8×8)
    • IRremote.h (telecomanda infrarosu)
  • algoritm:

In urma implementarii proiectului am folosit urmatoarele functii:

  1. checkWin: verifica, dupa o mutare, daca a castigat unul dintre jucatori; intoarce 0 daca nu si 1 sau 2 daca a castigat unul dintre jucatori.
  2. boardReset: reseteaza matricea de leduri.

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.

Rezultate Obţinute

Stare initiala

Stare intermediara

Stare finala cu castigator

Stare finala remiza

Concluzii

Download

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2022/apredescu/x-si-0.txt · Last modified: 2022/06/01 23:02 by elvin.ibraim
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0