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ă:
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.
Proiectul Minesweeper pe Arduino a fost finalizat cu succes, atingând toate obiectivele propuse și demonstrând viabilitatea și funcționalitatea acestuia. Experiența acumulată în cadrul acestui proiect a fost extrem de valoroasă, oferind o bază solidă pentru proiecte viitoare și dezvoltarea continuă a abilităților tehnice.
Posibile Îmbunătățiri:
Extinderea Funcționalităților: Adăugarea de nivele de dificultate sau opțiuni suplimentare pentru utilizatori ar putea îmbunătăți experiența de joc.
Optimizări de Performanță: Analizarea și optimizarea codului pentru a asigura o performanță mai bună și un răspuns mai rapid al interfeței.
Design Ergonomic: Îmbunătățirea designului fizic pentru a facilita o interacțiune mai confortabilă și intuitivă.
Arhiva se poate descarca aici.
05 mai: Alegerea temei proiectului
Decizia de a dezvolta jocul Minesweeper pe Arduino.
Identificarea componentelor necesare.
15 mai: Sosirea componentelor și asamblarea hardware
16 mai: Finalizarea asamblarii hardware-ului: ecran TFT, joystick, butoane, LED-uri.
18 mai: Implementarea matricei de joc și a logicii de bază
20 mai: Dezvoltarea interfeței de joc și a funcțiilor principale
21 mai: Crearea meniului de start și finalizarea proiectului
Testarea finală și ajustările finale.