This shows you the differences between two versions of the page.
pm:prj2023:vstoica:dispozitiv_exploziv_cu_cifru [2023/05/28 19:25] mihai.marica1803 [Concluzii] |
pm:prj2023:vstoica:dispozitiv_exploziv_cu_cifru [2023/05/29 04:01] (current) mihai.marica1803 [Download] |
||
---|---|---|---|
Line 53: | Line 53: | ||
* Mediu de dezvoltare: Arduino 2.1.0 | * Mediu de dezvoltare: Arduino 2.1.0 | ||
* Librării: LiquidCrystal_I2C, Keypad | * Librării: LiquidCrystal_I2C, Keypad | ||
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | |
- | * surse şi funcţii implementate | + | Funcții realizate: |
+ | * **setup()**: Această funcție este apelată o singură dată când placa Arduino pornește. Inițializează modurile pinilor pentru LED-urile roșu și verde, inițializează afișajul LCD, generează o parolă aleatoare de 4 cifre și două poziții aleatoare pentru indicii, și afișează parola și numărătoarea inversă inițială pe LCD. | ||
+ | * **gameLost()**: Această funcție este apelată atunci când jocul este pierdut. Ea șterge conținutul afișajului LCD, activează LED-ul roșu într-un model de clipire, redă un sunet pe buzzer și afișează un mesaj care indică că bomba a explodat și jucătorul a pierdut. Apoi intră într-o buclă infinită, oprind efectiv programul. | ||
+ | * **gameWon()**: Această funcție este apelată atunci când jocul este câștigat. Ea șterge conținutul afișajului LCD, afișează un mesaj care indică că bomba a fost dezamorsată și jucătorul a câștigat, activează LED-ul verde, redă un sunet de victorie pe buzzer și intră într-o buclă infinită. | ||
+ | * **passwordMatches()**: Această funcție verifică dacă ghiciul introdus se potrivește cu parola generată. Compară fiecare cifră a ghicitorii cu cifra corespunzătoare din parolă. Dacă toate cifrele se potrivesc, returnează 1 (adevărat); în caz contrar, returnează 0 (fals). | ||
+ | * **loop()**: Această funcție este apelată în mod repetat după funcția setup(). Ea conține logica principală a jocului. Verifică timpul rămas, actualizează numărătoarea inversă pe afișajul LCD, face LED-ul roșu să clipească în funcție de timpul rămas, afișează indicii pe LCD la intervale specifice, citește intrările de la tastatură, și verifică dacă ghiciul introdus este corect. Dacă ghiciul este corect, apelează funcția gameWon(). Dacă ghiciul este incorect, afișează un mesaj de eroare, redă un sunet de eroare pe buzzer și resetează ghiciul. | ||
Codul aplicaţiei: | Codul aplicaţiei: | ||
Line 86: | Line 91: | ||
<note warning> | <note warning> | ||
- | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). | + | {{:pm:prj2023:vstoica:maricamihai_332ca_proiectpmfinal.zip|}} |
- | + | ||
- | Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:prj20??:c?** sau **:pm:prj20??:c?:nume_student** (dacă este cazul). **Exemplu:** Dumitru Alin, 331CC -> **:pm:prj2009:cc:dumitru_alin**. | + | |
</note> | </note> | ||