This is an old revision of the document!


Minesweeper

Autor: Ana-Maria Radu

Introducere

Proiectul implementeaza o varianta minimalista a Minesweeper pe o matrice de LED-uri. Scopul sau este de a oferi o interfata intuitiva si usor de folosit pentru utilizator, pentru a face jocul una dintre acele activitati “no-brainer” pe care le poti face oricand, chiar si in timpul cursurilor^_^.

Reguli si desfasurarea jocului

Jucatorul are la dispozitie 5 butoane (select + 4 directii de deplasare) pe care le foloseste pentru a interactiona cu matricea de LED-uri. Initial, toate LED-urile sunt stinse, in afara unui cursor care lumineaza alb pentru a indica pozitia curenta.
Jucatorul muta cursorul pana la pozitia dorita si apoi apasa butonul Select, care va “descoperi” pozitia, adica va lumina:

  • Rosu, daca jucatorul a descoperit o bomba
  • Galben, daca jucatorul se afla la distanta 1 de o bomba (distanta se calculeaza inclusiv pe diagonala)
  • Verde, daca jucatorul a descoperit o casuta “safe”

Daca jucatorul selecteaza o bomba, jocul se considera pierdut, se afiseaza o animatie de final si mesajul “You lost! Try again?”, urmat de un meniu in care are posibilitatea de a alege sa continue sau nu (meniul consta in doua LED-uri aprinse pe matrice, unul rosu si unul verde, semnificand cele doua decizii posibile; jucatorul poate selecta unul dintre ele folosind cursorul).

Daca jucatorul a descoperit toate pozitiile in afara de bombe, jocul se considera castigat, se afiseaza o animatie de victorie si mesajul “You won! Try again?”, urmat, din nou, de meniul cu cele doua decizii posibile.

Daca se alege continuarea jocului, totul se reseteaza si utilizatorul poate incepe o runda noua. Daca, in schimb, se alege terminarea lui, se afiseaza mesajul “Goodbye!” si se sting toate LED-urile, mimand inchiderea dispozitivului.

Inspiratie si utilitate

Am pornit de la implementarea clasica a jocului, insa am ales sa folosesc coduri de culori in loc de cifre pentru a indica proximitatea fata de o bomba. Cred ca acest proiect este util pentru ca poate fi folosit in viata reala ca un joc minimalist, iar pentru mine a fost folositor din perspectiva procesului de invatare prin care am trecut pe tot parcursul realizarii lui.

Descriere generala

Mai jos este schema bloc a proiectului:

Hardware Design

Schema electrica poate fi vizualizata si aici, folosind Tinkercad.

Componentele folosite sunt:

Componenta Cantitate Alimentare
Arduino UNO 15V
Matrice 8x8 de LED-uri15V
BreadBoard1
Butoane5
Fire de legatura tata-tata16

Software Design

Rezultate

Concluzii

Download

Jurnal

22.04.2021 - Comandarea primului set de piese (Arduino, butoane, fire)
26.04.2021 - Comandarea celui de-al doilea set de piese (matrice de LED-uri, butoane aditionale)
27.04.2021 - Comandarea pieselor finale (breadboard)
03.05.2021 - Testarea pieselor individual
05.05.2021 - Familiarizarea cu bibliotecile necesare implementarii software a proiectului; testarea diferitelor comenzi pe matricea de LED-uri
07.05.2021 - Implementarea completa a cursorului pe matricea de LED-uri (miscare, select, coduri de culoare)
15.05.2021 - Implementarea logicii matricii de bombe (randomizarea bombelor, win/lose action, try again)
25.05.2021 - Retusuri finale; completare documentatie

Bibliografie/Resurse

pm/prj2021/avaduva/minesweeper.1622016215.txt.gz · Last modified: 2021/05/26 11:03 by ana_maria.radu0306
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0