Autorul poate fi contactat la adresa: Login pentru adresa
Proiectul consta in implementarea jocului Ultimate Tic-Tac-Toe pe o placa cu LCD.
Scopul proiectului este reprezentat de jocul de X-0 intre un jucator si A.I. sau jucator vs jucator dar pe un grid de 9×9. Atunci cand un jucator pune intr-o casuta intr-un 3×3 grid din grid-ul de 9×9, jucatorul advers este trimis intr-un alt 3×3 grid unde va putea pune seta o alta casuta. Atunci cand un player castiga un grid 3×3 din cel 9×9, se seteaza intr-un MacroGrid(care este 3×3) ca si castigata acea casuta corespunzatoare gridului 3×3. De exemplu, in coltul din stanga-sus al gridului 9×9, am un grid 3×3. In MaroGrid, acel 3×3 grid va fi o casuta 1×1, asociata gridului 3×3 din cel 9×9. Pentru a castiga, se verifica MacroGrid-ul in acelasi mod in care se verifica pentru castigare jocul clasic de Tic-Tac-Toe.
Ideea de la care am pornit este reprezentata de jucarea unui joc Tic-Tac-Toe la alt nivel, in care se evita draw-urile pe cat de mult posibil, ceea ce in jocul clasic nu se prea putea face.
Este util, deoarece reprezinta o provocare mai mare, care necesita multa atentie si logica.
Exista 5 butoane. 4 vor fi folosite pentru a ne putea deplasa printre casute, si unul pentru a pune X/0 in acea casuta. Pe LCD se va afisa grid-ul impreuna cu niste informatii utile despre joc, precum al carui rand este, sau cine a castigat. Microprocesorul va realiza operatiile necesare de interactiune.
Lista de piese:
Schema electrica:
Mediu de dezvoltare
Librarii si surse 3rd-party
Am folosit o librarie care comunica prin SPI cu LCD-ul: lcd_spi_st7735.rar
De asemenea, am folosit si librariile de la laborator(avr, util/delay.h, stdlib, stdio).
Algoritmi şi structuri pe care plănuiţi să le implementaţi
Pe ecran va aparea grid-ul 9×9 pe care se va juca. Voi implementa Minimax pentru A.I.. Prin apasarea celor 4 butoane jucatorul se va putea deplasa in grid, iar prin intermediul celui de al 5-lea va putea pune X/0 intr-o casuta.
Surse şi funcţii implementate
Pentru LCD
Pentru grafica
Pentru joc
Metode pentru AI si gestionare grid
A fost un proiect interesant care mi-a oferit sansa sa lucrez si pe partea de hardware, oferindu-mi o mica experienta din care am invatat multe. AI-ul nu am reusit sa il fac sa mearga pe microcontroller, deoarece algoritmul Minimax este recursiv, iar stiva uc-ului este mica, dar algoritmul este corect si are o euristica buna. De asemenea, nu am mai putut adauga alte functionalitati jocului, deoarece fisierul .hex ar depasi cei 32k de flash.
Surse: 332cb_ion_bogdan.rar