This is an old revision of the document!


TicTacToe

Student: Petcu Eduard

Grupa: 334CC

Introducere

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.

Descriere generală

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.

Schema bloc

Hardware Design

Listă de piese:

  • Arduino Uno R3
  • LCD SPI 1.8”
  • Buzzer Activ 3V
  • Joystick
  • Fire
  • LED RGB

Software Design

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.

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
  • librării şi surse 3rd-party (e.g. Procyon AVRlib)
  • algoritmi şi structuri pe care plănuiţi să le implementaţi
  • (etapa 3) surse şi funcţii implementate

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

Codul sursa se poate gasi in arhiva: tictactoe.zip

Jurnal

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

Bibliografie/Resurse

pm/prj2023/danield/tictactoe.1685300007.txt.gz · Last modified: 2023/05/28 21:53 by eduard.petcu
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