Table of Contents

Constantin-Alexandru MILITARU - Jocul 2048

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Proiectul își propune implementarea celebrului joc 2048. Tabela va fi expusă pe un LCD, iar mutările se vor realiza prin intermediul unor butoane. Scopul jocului este ca, după mutări succesive și cumulări de punctaj, un pătrat să aibă valoarea 2048. Ideea proiectului a plecat de la o implementare mai veche a jocului, realizată ca temă pentru cursul de Programarea Calculatoarelor. Proiectul își propune construirea unei noi arhitecturi (PCB) și adaptarea codului pentru a rula pe aceasta.

Descriere generală

Butoanele sunt folosite pentru a muta celulele în direcțiile stânga, dreapta, sus și jos. Odată efectuată mutarea, rezultatul va fi calculat pe placă, iar noua configurație a tabelei și noile valori ale celulelor vor fi afișate pe LCD.

Hardware Design

Lista componentelor:

Schema electrică

Software Design

Medii de dezvoltare:

Biblioteci și surse 3rd-party:

Există 2 fișiere sursă:

Fișierul lcd.c este fișierul în care se află biblioteca și care trebuie compilat împreună cu celelalte surse pentru a obține un .hex funcțional

Rezultate Obţinute

Proiectul funcționează în 90% din cazuri, însă are unele probleme la afișarea numerelor.

Concluzii

Proiectul a fost unul plin de peripeții. Am avut ghinionul să achiziționez în total 3 LCD-uri, abia ultimul dintre acestea dovedindu-se funcțional. Primul display era cel mai probabil ars, l-am luat de pe OLX. <fc #FF0000>Nu vă recomand să cumpărați de pe OLX</fc>. Al doilea a fost un LCD 128 x 64 ST7920 care mi-a mâncat zilele cu biblioteca lui grafică, u8glib, care nu mai poate fi compilată pe Linux din motive de arhitectură și care merge compilată doar pe Windows. Ca să fie totul bine, am descoperit la final că dezvoltarea acestei biblioteci a încetat acum aproximativ 2 ani.

Aveți mare grijă dacă vă încurcați cu u8glib! Makefile-ul dă rezultate doar pe Windows.

Display-ul care m-a salvat a fost LCD-ul NOKIA 3310, mai mic decât precedentul, dar cu o bibliotecă grafică foarte simplă și ușor de utilizat. Acest display are doar 8 pini și este mult mai ușor de conectat (față de 20 de pini pentru ST7920).

În final, aș spune că proiectul a fost mult mai greu decât m-am așteptat, cu toate aceste probleme care au apărut pe parcurs. Bug-urile în hardware sunt groaznice. Ar fi trebuit să mă apuc mult mai devreme.

Download

Github: https://github.com/alexandrumc/2048ProiectPM

Bibliografie/Resurse