Autorul poate fi contactat la adresa: Login pentru adresa
Tetris este un joc video creat de Alexei Pajitnov în iunie 1985. Numele jocului a fost derivat din grecescul tetra, pentru a face referire la faptul că toate piesele sunt formate din patru patrățele (blocuri), și tenis, care era jocul preferat al creatorului.
Fiecare piesă a jocului (numită tetrimino) este formată din patru blocuri pătrate. O secvență aleatoare de piese se deplasează în jos pe suprafața de joc (o zonă dreptunghiulară de dimensiunea a 16 blocuri pe verticală si 10 blocuri pe orizontală). Scopul jocului este de a manipula aceste piese prin deplasare pe orizontală și rotire cu 90 de grade astfel încât să se obțină o linie orizontală de 10 blocuri fară goluri. La crearea unei astfel de linii aceasta dispare și blocurile de desupra ei vor coborî. Când un anumit număr de linii sunt eliminate se trece la nivelul următor. Odată cu avansarea jocului piesele încep să coboare mai repede, jocul sfârșindu-se atunci când suprafața de joc se umple și alte piese nu mai au loc să apară.
Figura următoare reprezintă diagrama bloc cu toate modulele hardware ale proiectului ilustrând modul în care acestea interacționează.
Figura următoare reprezintă diagrama bloc cu toate modulele software ale proiectului ilustrând modul în care acestea interacționează.
Componente | Nr. buc. | Preț unitar (RON) | Preț total (RON) | Detalii |
---|---|---|---|---|
RAYSTAR OPTRONICS RG12864B-GHW-V | 1 | 97,65 | 97,65 | rg12864b-ghw-v |
NINIGI TACT-64N-F | 4 | 0,21 | 0,84 | ninigi |
SR PASSIVES CF1/4W-10K | 4 | 0,03 | 0,12 | sr-passives |
VISATON 2823 | 1 | 25,84 | 25,84 | 2823 |
Costuri totale: 124,45RON
* Lista de piese și consturile totale nu conțin componentele de bază necesare etapei I.
* Prețurile includ TVA.
Figura următoare reprezintă schema electrică a circuitului.
Jocul Tetris este scris în limbajul de programare C. Pentru compilarea codului sursă este folosit compilatorul avr-gcc.
Pentru afișarea pe LCD a imaginilor și a font-urilor a fost necesară dezvoltarea bibliotecii GLI (împreună cu Cătălin DOGARU) care să permită acest lucru. Această bibliotecă oferă un set de funcții și tipuri de date care simplifică modul de lucru cu LCD-ul și cu resursele grafice. Biblioteca interacționează cu LCD-ul prin intermediul driver-ului NT7108.
Driver-ul NT7108 ofera un set de funcții pentru inițializarea și controlul LCD-ului.
Pentru crearea resurselor grafice în formatul folosit de biblioteca GLI a fost necesară dezvoltarea setului de aplicații GLI_Tools format din următoarele programe:
Biblioteca GLI permite afișarea pe LCD a imaginilor și a font-urilor. Aceasta oferă un set de funcții și tipuri de date care simplifică modul de lucru cu LCD-ul și cu resursele grafice. Biblioteca interacționează cu LCD-ul prin intermediul driver-ului NT7108.
Biblioteca GLI oferă urmatoarele funcții:
void GLI_Initialize(void); void GLI_Clear(unsigned char Color); void GLI_SetPixel(unsigned char x, unsigned char y, unsigned char Color); void GLI_StrokeRectangle(unsigned char Left, unsigned char Top, unsigned char Right, unsigned char Bottom, unsigned char Color); void GLI_DrawBitmap(unsigned char x, unsigned char y, const GLI_BITMAP *pBitmap); void GLI_DrawString(unsigned char x, unsigned char y, const GLI_FONT *pFont, const char *pszString); void GLI_Present(void);
Driver-ul NT7108 ofera un set de funcții pentru inițializarea și controlul LCD-ului.
Acesta oferă următoarele funcții pentru inițializarea LCD-ului, scrierea instrucțiunilor către LCD, scrierea datelor în RAM-ul LCD-ului, citirea stării LDC-ului și citirea datelor din RAM-ul LCD-ului:
void NT7108_Initialize(void); void NT7108_WriteInstruction(unsigned char ChipSelect, unsigned char Data); void NT7108_WriteData(unsigned char ChipSelect, unsigned char Data); unsigned char NT7108_ReadStatus(unsigned char ChipSelect); unsigned char NT7108_ReadData(unsigned char ChipSelect);
Setul de aplicații GLI_Tools permite crearea resurselor grafice în formatul folosit de biblioteca GLI. Codul sursă este scris în limbajul de programare Visual C# și a fost dezvoltat în mediul de dezvoltare integrat Microsoft Visual Studio 2010.
Programul GLI_BitmapEditor permite crearea și salvarea de imagini ce pot fi folosite apoi de aplicație prin intermediul bibliotecii GLI.
Imaginea următoare ilustrează ferestrele principale ale programului GLI_BitmapEditor.
Programul GLI_FontGenerator permite generarea de font-uri ce pot fi folosite apoi de aplicație prin intermediul bibliotecii GLI.
Imaginea următoare ilustrează ferestrele principale ale programului GLI_FontGenerator.