Autorul poate fi contactat la adresa: Login pentru adresa
Proiectul constă în implementarea binecunoscutului joc 2048 pe un ecran de Nokia 3310 (sau mai mare). Ideea mi-a venit, bineînțeles, de la hype-ul creat în jurul jocului (toată lumea a auzit de joc, toată lumea a jucat cel puțin o dată). Scopul proiectului, deși pare unul de tipul “yet another 2048 game”, este de fapt de a realiza prima implementare pe un dispozitiv hardware a sa.
Jucătorul va ține plăcuța în mână, fiecare mutare va fi sesizată de către accelerometru/giroscop, microcontrollerul va citi periodic datele de la accelerometru și va updata display-ul LCD.
Piese | Număr | Preț | Sursa |
Display Nokia 3310 | 1 | 20 lei | Okazii |
Accelerometru | 1 | N/A | N/A |
Rezistențe 3K3 | 5 | 1 leu | Electronic Components, Maica Domnului |
Reizistențe 2K2 | 5 | 1 leu | Electronic Components, Maica Domnului |
1 condensator 100nF | 1 | N/A | Robolab ![]() |
4 Diode 1N4148 | 4 | 2 lei | Electronic Components, Maica Domnului |
1 placa de test | 1 | 8 lei | Electronic Components, Maica Domnului |
Total: | 32 lei |
Codul a fost scris în vim, compilat cu avr-gcc și încarcat pe placă folosind exe-ul bootloaderHID oferit la laborator. Pentru afișarea pe LCD am folosit biblioteca de aici: http://www.quantumtorque.com/content/view/32/37/.
Din cauza faptului că ecranul este foarte mic, jocul este practic un 1024 pentru că nu au loc numere de 4 cifre într-o căsuță. Codul este scris destul de modularizat, existând câte o funcție pentru fiecare mutare (up, down, left right), așadar se poate adăuga foarte ușor interacțiune cu utilizatorul (momentan, jocul este doar în AI-mode).
Pentru reprezentarea datelor am folosit o matrice de 4 x 4 de întregi, iar conversia la char* o fac cu o funcție proprie, itoa().
Proiectul a fost interesant, mi-a plăcut că în sfârșit am aplicat câteva cunoștințe de la electronică. Din cauza faptului că LCD-ul nu a funcționat până la 2:00am cu o zi înainte de deadline, proiectul mai poate primi îmbunătățiri substanțiale. De asemenea, am renunțat la ideea originală de a avea control cu accelerometru. Primul lucru pe lista de TODOs ar fi adăugarea unor butoane pentru input din partea userului.
<WRAP center round download 60%> 334cb_anton_flavius_2048game.zip </WRAP>