This is an old revision of the document!
Student: Petcu Eduard
Grupa: 334CC
Pentru acest proiect, voi implementa jocul de X si O pe un ecran de LCD SPI de 1.8”. Cei doi jucatori vor putea controla un joystick pentru a face o mutare.
Am ales sa pornesc pe ideea aceasta intrucat am vrut sa imbin invatarea programarii pe o placuta Arduino cu utilizarea bibliotecilor gfx pentru a realiza randarea de imagini pe un LCD.
Proiectul are ca scop realizarea unui joc utilizand componente hardware.
Pentru inceput, jucatorul va alege daca va juca o partida cu un alt jucator sau cu calculatorul. In cazul partidei PvP, un LED va indica care jucator trebuie sa faca o mutare. Tabla de X si 0 va fi afisata in mod constant pe LCD. La final, buzzer-ul va emite un sunet in functie de rezultatul partidei.
Modul de alegere a mutarilor calculatorului va avea la baza algoritmul Minimax.
Pentru implementarea partii software a jocului de TicTacToe am inclus bibliotecile SPI.h
si
TFT.h
.
In functia setup()
am configurat LED-ul RGB, ecranul LCD si joystick-ul si am randat meniul principal
din care jucatorul poate alege daca sa joace contra unui alt jucator sau contra calculatorului.
In functia loop()
se asteapta ca jucatorul sa aleaga unul din cele 2 moduri de joc.
La inceperea jocului, se apeleaza una din functiile PvPGame()
sau PvComGame()
, care se ocupa de jocul de TicTacToe propriu-zis.
In cele doua functii, se verifica daca jocul nu este terminat (in metoda resultOfGame()
). In cazul in care meciul este inca in
desfasurare, se verifica daca a avut loc o mutare a cursorului pe tabla de X si O. Verificarea are loc in functia moveCursor()
la fiecare
500 ms folosind tehnica de debounce. La apasarea joystick-ului, se verifica daca mutarea dorita este una valida iar in caz contraar, un sunet corespunzator se va auzi la buzzer.
Codul sursa se poate gasi in arhiva: tictactoe.zip