This shows you the differences between two versions of the page.
pm:prj2021:dbrigalda:tetris [2021/05/24 19:26] andrei.stoian0307 [Rezultate obţinute] |
pm:prj2021:dbrigalda:tetris [2021/05/29 16:59] (current) andrei.stoian0307 [Download] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Tetris ====== | ====== Tetris ====== | ||
+ | |||
+ | ===== Autor ===== | ||
+ | <note tip> | ||
+ | **Autor:** [[https://github.com/cheez3d|Andrei Stoian]] | ||
+ | </note> | ||
===== Introducere ===== | ===== Introducere ===== | ||
Line 53: | Line 58: | ||
* https://github.com/PaulStoffregen/PS2Keyboard | * https://github.com/PaulStoffregen/PS2Keyboard | ||
- | TODO descriere cod sursă | + | Descriere de nivel înalt: |
+ | |||
+ | Ceasul jocului are o frecvență de 50Hz (50 de actualizări/cadre pe secundă). Acest ceas este derivat din Timer1 de pe chipul Atmel ATmega 328P care generează o întrerupere de timer la frecvența de 200Hz, deci odată la 4 întreruperi de timer va fi executată bucla jocului. Frecvența de 200Hz a fost aleasă pentru a convertorul ADC, întrucât citirea valorilor generate de convertorul ADC sunt executate odată cu întreruperea de timer de pe Timer1. ADC-ul citește 4 valori: luminozitatea ecranului LCD, volumul buzzer-ului și cele 2 axe ale joystick-ului. | ||
+ | |||
+ | Grid-ul jocului este memorat într-un array bidimensional în care o valoare de 0 înseamnă că pe poziția asociată nu se află un bloc iar o valoare de 1 înseamnă că pe poziția asociată se află un bloc. Toate datele despre tetromino-uri (rotații, wallkick-uri etc.) sunt stocate în memoria flash și transferate în RAM când este nevoie de acestea. | ||
Mediul de dezvoltare a fost [[https://code.visualstudio.com/updates/v1_55|Visual Studio Code 1.55.2]] cu [[https://marketplace.visualstudio.com/items?itemName=vsciot-vscode.vscode-arduino|extensia pentru Arduino]]. | Mediul de dezvoltare a fost [[https://code.visualstudio.com/updates/v1_55|Visual Studio Code 1.55.2]] cu [[https://marketplace.visualstudio.com/items?itemName=vsciot-vscode.vscode-arduino|extensia pentru Arduino]]. | ||
Line 68: | Line 77: | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
- | TODO ??? | + | În urma realizării proiectului am descoperit lucruri pe care nu le știam despre [[https://tetris.wiki/Super_Rotation_System|mecanicile jocului Tetris]]. |
===== Download ===== | ===== Download ===== | ||
- | * [[https://github.com/cheez3d/acs-arduino-tetris/archive/refs/heads/master.zip|Cod sursă]] | + | * [[https://github.com/cheez3d/acs-arduino-tetris/archive/refs/heads/master.zip|Cod sursă]] ([[https://github.com/cheez3d/acs-arduino-tetris|repository]]) |
- | * TODO resurse, bitmap-uri etc. | + | * {{:pm:prj2021:dbrigalda:tetris-resources.zip|Resurse (bitmap-uri, poze etc.)}} |
===== Jurnal ===== | ===== Jurnal ===== | ||
Line 85: | Line 93: | ||
* 16.05.2021 - am conceput un sistem de memorare a proprietăților tetromino-urilor | * 16.05.2021 - am conceput un sistem de memorare a proprietăților tetromino-urilor | ||
* 22.05.2021 - am terminat implementarea logicii jocului | * 22.05.2021 - am terminat implementarea logicii jocului | ||
+ | * 24.05.2021 - am realizat videoclipul demonstrativ al proiectului | ||
</note> | </note> | ||