This is an old revision of the document!
Tic-Tac-Toe
Introducere
Proiectul consta in implementarea clasicului joc X si 0 pe un LCD cu touchscreen. Jocul se poate juca atat intre 2 jucatori(pvp), cat si intre un utilizator si un AI, avand 3 dificultati: Easy, Medium si Impossible.
Descriere generală
Jucatorii se pot folosi atat de butoane, cat si de touchscreen-ul de pe LCD pentru partea de input.
Display-ul LCD-ului(SPI) este componenta principala si esentiala pentru partea de output, afisandu-se in mod fluent ecranul corespunzator momentului curent din cadrul jocului.
Este folosit un buzzer pentru partea de sunet a jocului, aceasta fiind utila in anumite cazuri(ex: cand o partida ajunge la final, la o mutare incorecta).
Hardware Design
Listă de piese:
Arduino MEGA 2560
LCD cu touchscreen(SPI) - ILI9341, XPT2046
Translator de nivel bidirectional cu 8 canale (folosit pentru conectarea LCD-ului)
10 Butoane
1 Buzzer
1 Breadboard principal
Cate un breadboard de mici dimensiuni pentru amplasarea butoanelor asociate fiecarui jucator
Fire de legătură
Schemă electrică:
Software Design
Mediul de dezvoltare: Arduino IDE
Biblioteci externe utilizate:
Pentru implementarea algoritmului folosit in cazul modului de joc cu bot-ul, dificultatea Impossible, m-am folosit de urmatoarea strategie de joc:
Daca bot-ul poate castiga intr-o mutare, mutarea castigatoare va fi facuta;
Daca adversarul poate castiga intr-o mutare, bot-ul va bloca, alegand campul respectiv;
Se va crea un scenariu in care bot-ul sa aibe 2 variante de a castiga, daca acest lucru este posibil;
Daca jucatorul ar putea, la urmatoarea mutare, un scenariu care-i va oferi doua variante de a castiga, bot-ul va incerca sa il opreasca;
Daca campul din mijloc este liber, bot-ul va alege acest camp pentru a muta;
Daca un colt opus unui simbol al adversarului este liber, botul va alege acel colt;
Se va alege orice colt liber, daca acesta exista;
Se va alege orice camp liber ramas.
Astfel, folosind aceasta strategie, bot-ul nu va putea fi invins in niciun scenariu.
Pentru dificultatea Medium, bot-ul va incerca mai intai sa castige, daca acest lucru este posibil, iar altfel, daca adversarul poate castiga intr-o mutare, acesta va fi blocat, iar daca nu, se va face o mutare random.
Dificultatea Easy consta doar in mutari random.
Sunt implementate mai multe
Rezultate Obţinute
Care au fost rezultatele obţinute în urma realizării proiectului vostru.
Concluzii
Download
O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună

.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.
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