This is an old revision of the document!
Autor: Andrei Preda (331 CA)
Mastermind este un joc de societate în care o persoană încearcă să ghicească un cod ales de adversarul său. Pentru a reuși, jucătorul poate propune mai multe variante ale codului final, primind pentru fiecare informații despre diferențele dintre răspunsul corect și cel încercat.
Scopul proiectului este implementarea acestui joc folosind un microcontroller Arduino și oferirea posibilității de a juca împotriva “calculatorului”. Va fi disponibil atât modul în care jucătorul trebuie să ghicească codul, cât și modul în care el îl alege.
Proiectul poate fi aproape util cuiva foarte plictisit și în lipsă de oricare alte activități.
Un cod este format din 4 simboluri. Clasic, fiecare simbol are una din 6 valori (de exemplu, A, B, C, D, E sau F).
Jucătorul care sparge codul are un număr limitat de încercări de a-l ghici. După fiecare încercare, va afla câte elemente au valoarea bună și sunt pe poziția corectă, și câte elemente au valoarea bună dar sunt plasate incorect. El câștigă dacă ghicește codul secret și pierde dacă și-a epuizat numărul de încercări.
Din moment ce avem la dispoziție o placuță Arduino, putem adăuga și o limită de timp.
Arduino UNO va prelua input-ul de la utilizator printr-un buton și un potențiometru. Potențiometrul va fi folosit pentru a naviga prin opțiunile unor meniuri, iar butonul, pentru a confirma o alegere.
Output-ul va fi oferit prin mai multe componente. Un ecran LCD va afișa majoritatea informațiilor legate de joc. LED-uri se vor aprinde pentru fiecare simbol ghicit corect. La finalul jocului, în funcție de deznodământ, un buzzer piezo va cânta o melodie.
Toată logica jocului va fi stocată în microcontroller. Pentru debugging (și hinturi), Arduino va trimite informații despre joc prin interfața serială către o aplicație simplă de pe calculatorul conectat prin USB.
Componentă | Număr |
---|---|
Arduino UNO | 1 |
LCD 1602 cu I2C | 1 |
LED | 4 |
Breadboard | 2 |
Buzzer piezo | 1 |
Pushbutton | 1 |
Potențiometru | 1 |
Rezistență 150 ohm | 4 |
Rezistență 5k ohm | 1 |
Am inclus și o schemă realizată în Tinkercad, dar am conectat LCD-ul în paralel, deoarece nu am găsit un modul pentru I2C.