Table of Contents

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:

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):

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

Demo: https://youtube.com/shorts/tOcB7iuh8jg?feature=share

Download

https://github.com/elvinibraim1/arduino/blob/main/TicTacToe.ino

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