Dragoş-Andrei DRĂGAN (25391) - Ultimate Tic-Tac-Toe (LCD)

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Proiectul consta in implemenatrea jocului “Ultimate Tic-Tac-Toe”. Am ales aceasta aplicatie in scop interactiv, si am plecat de la ideea oferita de ultimul laborator, in care a trebuit sa realizam jocul cu bila. Proiectul este util, datorita faptului ca ofera posibilitatea de dezvoltare a “skill-urilor” in jocurile de acest gen.

Descriere generală

Modul de functionare al proiectului este unul foarte simplu. Jucatorul va avea la dispozitie 5 butoane(UP, DOWN, LEFT, RIGHT, ENTER) prin care va muta cursorul in ce casuta doreste sa insereze X sau 0. Aceste valori sunt transmise microcontroller-ului, care le va afisa pe LCD. Procesul se reia in functie de regulile speciale ale “Ultimate Tic-Tac-Toe”, iar al doilea jucator va insera urmatorul simbol. Procesul continua pana cand in matricea mare, formata din 9 matrici 3×3, se vor completa 3 matrici ca fiind castigatoare cu acelasi simbol (fie cu X, fie cu 0), iar aceste matrici sa fie in linie, sau pe diagonala.

Hardware Design

Pentru acest proiect, voi folosi ca si piese componente placuta + piesele de baza pe care le-am lipit pe ea la laborator. In principiu, voi utiliza un LCD Nokia 3310 sau 5110 pe care il voi achizitiona de pe OLX impreuna cu o rezistenta de 0.25W. Pentru a folosi un astfel de LCD, va fi nevoie de alimentare la 3.3V a placutei. Pentru acestea voi avea nevoie de un regulator de tensiune si un condensator electrolitic. Implementarea se va baza pe comanda din 5 butoane.

Componente de baza

Nr CrtDenumireCod
1 ATMEGA324PA-PU 1715485
2 Conector USB B Cvilu 2112373
3 Quartz 16MHz 1611761
4 Dioda Zener 1700785
5 LED 3mm Rosu 2112111
6 HN1X40 2356175
7 K2X10 1022236
8 Tasta TS-06E 2056808
9 Rezistenta 0,25W 9339043
10 Rezistenta 0,25W 9339531
11 Jumper 1654800
12 Rezistenta 0,25W 9339183
13 Rezistenta 0,25W 9339060
14 100nF Condensator ceramic 1141777
15 15pF Condensator ceramic 1141759
16 Soclu Microcontroller 4285669

Componente optionale

Nr CrtDenumireCantitateCod
1 LCD Nokia 3310/5110 1 OLX
2 Rezistenta 0.25W 1 2329626
3 Regulator de tensiune 1 1703359
4 Condensator electrolitic 1 9451056
5 PUSHBUTTON 5 2056808

Software Design

-am pornit implementarea de la driverul pentru Nokia 3310 -datorita faptului ca ecranul este mult prea mic, am implementat un vector (dimensiune 9) de matrici(dimensiune 3×3) cu valoarea 1 notata in fiecare casuta
-se realizeaza afisarea unei singure matrici, cu coordonatele din matricea mare afisate in colturile de sus ale ecranului
-in momentul in care se insereaza x/0, in functie de pozitia patratelului respectiv, se va afisa o noua matrice corespunzatoare acelui patratel, restul de valori ramanand salvate

Probleme:
-butoanele sunt mult prea sensibile(nu am reusit sa rezolv) si atunci cand un buton este apasat face un fel de double-click
-la parcurgerea matricei nu sunt probleme, deoarece se pot apasa (stanga-dreapta sau sus-jos simultan), in schimb apare fenomenul de double insert
-nu au fost implementate conditiile de castigare, deoarece se face acest double-insert care da totul peste cap

Observatii:
-nu am folosit foarte multe functii pentru o modularizare mai buna a programului, datorita lipsei de timp fizic
-codul arata cam dezordonat

Rezultate Obţinute

In cea de-a doua imagine nu se vede nici un cursor, dar initial a fost inserat 0 in coltul dreapta sus al unei matrice, acest lucru ducand la afisarea matricei de pe pozitia (0,2) din matricea mare de 9×9, si datorita double insert-ului se insereaza un nou x, acesta fiind cursorul la momentul actual. Datorita acestei probleme nu am mai incercat sa termin codul, in mare masura datorata si lipsei de timp.

Concluzii

-in primul rand ar fi trebuit sa folosesc un ecran lcd mult mai mare
-proiectul a fost mai usor decat m-am asteptat, si din cauza aceasta imi pare rau ca nu am terminat toata partea de software
-a fost o experienta interesanta

Download

Dragan Dragos-Andrei, 331CB→dragan_dragos.andrei.zip

Jurnal

1. Am realizat placa de baza
2. Am cumparat componentele auxiliare pentru alimentare la 3V3 si LCD-ul Nokia
3. Am lipit componentele pe placa de baza, LCD-ul si 5 butoane lipindu-le pe placa de test
4. Am realizat conexiunile intre butoane,LCD si microcontroller.
5. Am scris o parte din codul pentru joc.

Bibliografie/Resurse

pm/prj2016/mandrei/ultimate-ttt.txt · Last modified: 2021/04/14 17:07 (external edit)
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