This shows you the differences between two versions of the page.
|
pm:prj2021:dbrigalda:tetris [2021/05/24 19:30] andrei.stoian0307 [Concluzii] |
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 70: | Line 79: | ||
| În urma realizării proiectului am descoperit lucruri pe care nu le știam despre [[https://tetris.wiki/Super_Rotation_System|mecanicile jocului Tetris]]. | Î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]]) |
| * {{:pm:prj2021:dbrigalda:tetris-resources.zip|Resurse (bitmap-uri, poze etc.)}} | * {{:pm:prj2021:dbrigalda:tetris-resources.zip|Resurse (bitmap-uri, poze etc.)}} | ||
| Line 84: | 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> | ||