This is an old revision of the document!
Nume: Ştefan Diana Maria
Grupa: 332CC
Minesweeper este un joc puzzle single-player, în care obiectivul este să dezvălui un câmp minat ascuns fără a detona vreo mină.
Proiectul utilizeză:
Aici este ceea ce am reusit sa leg, pana acum (16.05.2024):
Piesa | Cantitate |
---|---|
Arduino Nano | 1 |
Joystick | 1 |
1.8 TFT Display | 1 |
Buton | 2 |
Led colorat | 2 |
Rezistenta 2k2 | 5 |
Rezistenta 330 | 1 |
Rezistenta 220 | 2 |
Breadboard 830 puncte | 1 |
→ CS (Chip Select): Pin 10
→ DC (Data/Command): Pin 9
→ RST (Reset): Pin 12
→ Joystick
→ VRX (X-axa): A0
→ VRY (Y-axa): A1
→ SW (Buton): Pin 7
→ Buton roșu: Pin 3
→ Buton albastru: Pin 2
→ LED roșu: Pin 4
→ LED albastru: Pin 5
Diverse culori sunt definite pentru confort.
Valori analogice pentru detectarea mișcării joystick-ului.
Lățimea și înălțimea ecranului.
O grilă de 8×10 cu 10 mine.
Poziția curentă a cursorului.
→ Funcția setup inițializează ecranul TFT, setează modurile pin pentru butoane și LED-uri și afișează meniul de start.
→ Funcția loop conține logica principală a jocului:
→ Verifică condiția de câștig.
→ Citește starea butoanelor și a joystick-ului.
→ Dacă jocul nu a început, verifică dacă butonul de start este apăsat.
→ Dacă jocul este în desfășurare:
→ Gestionează plasarea stegulețelor.
→ Gestionează dezvăluirea celulelor.
→ Gestionează mișcarea cursorului.
→ Inițializează câmpul de mine cu celule goale.
→ Plasează aleatoriu mine pe câmpul de mine.
→ Calculează numerele care indică numărul de mine adiacente.
→ Afișează câmpul de mine pe monitorul serial.
→ Afișează câmpul de mine pe ecranul TFT.
→ Desenează o bombă pe ecranul TFT.
→ Desenează un steguleț pe ecranul TFT.
→ Dezvăluie toate spațiile goale conectate.
→ Afișează mesajul de pierdere și aprinde LED-ul roșu.
→ Afișează mesajul de câștig și aprinde LED-ul albastru.
→ Dezvăluie o celulă și verifică pentru mine.
→ Desenează grila pe ecranul TFT.
→ Mișcă cursorul pe baza intrării de la joystick.
→ Afișează meniul de start.
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.