Table of Contents

Minesweeper

Nume: Ştefan Diana Maria
Grupa: 332CC

Introducere

Descriere generală

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ă:

Schema bloc

Hardware Design

Lista de piese necesare:

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

Schema electrica

Software Design

Mediu de dezvoltare: Arduino IDE
Biblioteci utilizate: TFT.h SPI.h

Conexiuni Pin

→ 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

Constante și Variabile

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.

Explicația Codului

Setup

→ Funcția setup inițializează ecranul TFT, setează modurile pin pentru butoane și LED-uri și afișează meniul de start.

Loop

→ 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.

Alte funcții

→ 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.

Jocul afișează “YOU LOST” și aprinde LED-ul roșu dacă o mină este dezvăluită.
Jocul afișează “YOU WON” și aprinde LED-ul albastru dacă toate celulele care nu sunt mine sunt dezvăluite.

Rezultate Obţinute


Concluzii

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ă.

Download

Arhiva se poate descarca aici.

Jurnal

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.

Bibliografie/Resurse

Export to PDF