This shows you the differences between two versions of the page.
pm:prj2025:rnedelcu:catalin.aldobritei [2025/05/28 12:34] catalin.aldobritei [Download] |
pm:prj2025:rnedelcu:catalin.aldobritei [2025/05/28 12:38] (current) catalin.aldobritei [Software Design] |
||
---|---|---|---|
Line 104: | Line 104: | ||
Mediu de dezvoltare: Arduino IDE | Mediu de dezvoltare: Arduino IDE | ||
- | Librării: | + | Librarii: LiquidCrystal_I2C.h |
- | - Wire.h (pentru comunicația I2C cu LCD-ul) | ||
- | - LiquidCrystal_I2C.h (pentru controlul display-ului LCD I2C) | + | Structuri si algoritmi: |
- | Structuri și algoritmi: | + | State machine cu stari: diffSelect, gameOver, selectMode pentru controlul fluxului de executie |
- | - Stări precum SELECTIE_DIFICULTATE, JOC_ACTIV, VERIFICARE_GHICIRE, JOC_TERMINAT, RESTART | + | Timer non-blocking bazat pe millis() pentru countdown-ul in timp real |
- | - Timer non-blocking bazat pe millis() pentru countdown-ul în timp real | + | Debouncing software cu interval de 300ms pentru stabilitatea butoanelor si prevenirea apasarilor multiple |
- | - Debouncing software cu interval de 300ms pentru stabilitatea butoanelor | + | Algoritm de construire progresiva a numarului (cifra cu cifra) adaptat pe dificultate: |
- | - Algoritm de construire progresivă a numărului (cifră cu cifră) adaptat pe dificultate | + | Easy (1-10): doar unitati |
- | - Generator aleator pentru randomizare | + | Medium (1-100): zeci + unitati |
- | - Sistem de feedback audio adaptat cu frecvențe variabile bazate pe proximitatea ghicirii | + | Hard (1-1000): sute + zeci + unitati |
- | - PWM pentru controlul buzzer-ului și generarea tonurilor | ||
- | - Algoritm de verificare cu feedback directional (prea mic/prea mare) | + | Generator aleator pentru randomizare cu randomSeed |
- | Funcții implementate: | + | Sistem de feedback audio adaptat cu frecvente variabile bazate pe proximitatea ghicirii |
- | - `setup()` – inițializare hardware și configurare pin-uri | + | PWM si tone() pentru controlul buzzer-ului si generarea tonurilor |
- | - `loop()` – bucla principală | + | Algoritm de verificare cu feedback directional (prea mic/prea mare) |
- | - `gestionareSelectieDificultate()` – gestionează selecția și confirmarea nivelului | + | Sistem de proximitate inteligent cu praguri adaptive in functie de dificultate |
- | - `initializeazaJoc()` – setează parametrii specifici dificultății | + | Functii implementate: |
- | - `verificaTimp()` – monitorizează timer-ul și actualizează display-ul în timp real | + | setup() – initializare hardware si configurare pin-uri |
- | - `verificaGhicire()` – compară numărul introdus cu cel ales random și oferă feedback | + | loop() – bucla principala cu gestionarea starilor |
- | - `sunetApropiere()` – calculează și reproduce feedback audio bazat pe distanța până la răspuns | + | handleDiffSelect() – gestioneaza selectia si confirmarea nivelului de dificultate |
- | - `resetareGhicireCurenta()` – resetează starea pentru o nouă încercare fără restart complet | + | initGame() – seteaza parametrii specifici dificultatii (limite, timp, pozitii cifre) |
- | - `timpExpirat()` – gestionează sfârșitul jocului când timpul expiră | + | checkTime() – monitorizeaza timer-ul si actualizeaza display-ul in timp real |
- | - `melodieVictorie()`, `sunetEsec()`, `tonScurt()` – funcții audio pentru feedback contextual | + | checkGuess() – compara numarul introdus cu cel ales random si ofera feedback |
- | - `afisareMeniuDificultate()`, `afisareDificultate()` – gestionarea interfeței utilizator | + | resetGuess() – reseteaza starea pentru o noua incercare fara restart complet |
+ | |||
+ | timeUp() – gestioneaza sfarsitul jocului cand timpul expira | ||
+ | |||
+ | showDiffMenu() – afiseaza meniul principal de selectare dificultate | ||
+ | |||
+ | showDiff() – afiseaza dificultatea curenta selectata | ||
+ | |||
+ | proximitySound() – calculeaza si reproduce feedback audio bazat pe distanta pana la raspuns | ||
+ | |||
+ | winSound() – melodie de victorie cu tonuri crescatoare | ||
+ | |||
+ | failSound() – sunet de esec cu tonuri descrescatoare | ||
+ | |||
+ | quickBeep(), shortBeep(), confirmBeep() – feedback audio pentru actiuni utilizator | ||
</note> | </note> | ||