Table of Contents

Minesweeper

Introducere

Proiectul meu constă într-o simulare a jocului Minesweeper pe un display de dimensiuni reduse, în care este inclus un buzzer pentru a marca începutul și finalul jocului în funcție de verdictul acestuia (câștigător/necâștigător).

Scopul acestui proiect este să recreez experiența clasică a jocului Minesweeper pe un dispozitiv compact, oferind posibilitatea de experimenta acest joc captivant, chiar și într-un mediu mai restrâns.

Cred că acest proiect este util pentru alții deoarece oferă o alternativă de petrecere a timpului liber și stimulează logica și gândirea strategică. Pentru mine, acest proiect reprezintă o oportunitate de a-mi dezvolta abilitățile în programare și de a oferi o soluție creativă și interactivă pentru utilizatori.

Descriere generală

1. Inițializarea jocului:

2. Interacțiunea utilizatorului:

3. Descoperirea zonei:

4. Verificarea câștigului:

5. Finalizarea jocului:

Hardware Design

Listă componente necesare:

În imaginile ce urmează, am folosit 2 potențiometre în locul joystick-ului care se ocupă de mișcările pe sistemul de axe xOy.

Model Tinkercad:

Schematic:

Cum arată acum:

Software Design

Mediu de Dezvoltare

Biblioteci folosite

1. Wire Library (`Wire.h`):

  1. Descriere: Bibliotecă standard care facilitează comunicarea I2C între Arduino și alte dispozitive I2C.

2. LiquidCrystal_I2C Library (`LiquidCrystal_I2C.h`):

  1. Descriere: Utilizată pentru a controla afișajele LCD I2C.

Algoritmi şi Metode Implementate

1. setup()

2. loop()

3. generate_board()

4. initialize_game()

5. display_board()

6. position_cursor()

7. select_cell()

8. reveal_connected_zeros()

9. check_win()

10. display_win_message()

11. display_game_over_message()

12. scroll_message()

13. reveal_final_state()

14. playStartSound()

15. playWinningSound()

16. playLosingSound()

17. reset_game()

Surse şi Funcţii Implementate

Codul Principal: GitHub link

Laboratoare utilizate

Rezultate Obţinute

Demo Youtube: Link

Câteva poze cu carcasa finală:

Concluzii

Proiectul a fost o oportunitate excelentă de a învăța și de a aplica cunoștințe despre programarea microcontrolerelor, integrarea componentelor hardware și dezvoltarea unui joc complet funcțional. A fost un exemplu clar de cum se poate combina hardware-ul și software-ul pentru a crea o experiență interactivă și captivantă.

Consider că acest proiect m-a ajutat să vizualizez mai bine ce anume vreau să fac pe viitor.

Per total, proiectul este unul mai mult bazat pe software, dar care a avut și dificultăți hardware pentru a obține rezultatele corecte.

Download

Descărcare arhivă: andra-ioana_stoica_332ca.zip

Bibliografie/Resurse

1. Stack Overflow

2. LCD I2C Display Questions - Arduino Forum

3. Bi-color LED (red/green and yellow/green) - Arduino Forum

4. Interfacing RGB LED with Arduino - Project Hub

5. Piezo Buzzer Win and Fail Sound - Arduino Forum

6. Testing Joystick - Arduino Forum

7. How to Use Active and Passive Buzzers on the Arduino - Circuit Basics

8. Analog Joystick with Arduino - Explore Embedded

9. I2C LCD with Arduino Tutorial - Last Minute Engineers

10. C++ Implementation of Minesweeper Game - GeeksforGeeks

1. I2C Controller - Optimus Digital

2. LCD Display - Optimus Digital

3. Placa de Dezvoltare - Optimus Digital

4. Joystick - Optimus Digital

Export to PDF