Table of Contents

Minesweeper

Introducere

Autor: Andreev Hristofor

Grupa 333CC

Ideea principala a proiectul era de a crea cu ajutorul placutei Arduino UNO un joc de minesweeper.

Descriere generală

In urma a multe schimbari ale planului am ajuns la cea mai “curata” versiune posibila a proiectului, cea in care ecranul lcd cu touch screen este conectat direct la Arduino, datorita faptului ca pinii corespunzatori ecranului isi gasesc loc pe placuta Arduino.

Hardware Design

Lista de piese:

  placuta Arduino Uno R3
  Shield cu LCD grafic si touchscreen de 2.4"

Software Design

La inceput colorez tot ecranul in negru, dupa care desenez patratele ce reprezinta celule care pot avea, sau nu, bombele. Apasand pe o celula se verifica daca celula nu a fost, deja, apasata, in care caz se verifica daca e o bomba, caz in care se afiseaza “Wasted” pe ecran negru si se termina joaca, sau se afiseaza o cifra in locul celului ce indica cate bombe sunt in zona 3 pe 3 a acelei celule. Scopul final al jocului este cel de a gasi toate minele, fara a apasa pe una din ele.

Ideea randomizarii: “Începem prin a arunca moneda noastră de opt ori, adunând rezultatele: cu cât răsturnați moneda de mai multe ori, cu atât este mai greu de ghicit. Apoi luăm acea valoare rezultată și folosim doar bitul cel mai puțin semnificativ… LSB-ul sumei a opt LSB… aceasta este o monedă bine randomizata. Acum începem să construim stive de opt monede folosind acei biți. Fiecare bit generat este mutat cu „byteShift” la următoarea poziție de bit disponibilă până când toți cei 8 biți ai octetului sunt plini… adăugăm o monedă în stivă, apoi întoarcem încă 8 până când stiva noastră de 8 monede este completata. Odată ce avem teancul nostru de opt monede, îl folosim pentru a construi patru seturi de opt teancuri de monede. Când octetul nostru este umplut, îl adăugăm la valoarea cuvântului mutându-l peste cantitatea „wordShift” la următorul octet deschis disponibil… stivuim cele mai recente 8 monede peste orice stivă care era deja acolo până când avem 32 de monede.”

Rezultate Obţinute

Am obtinut un joc minesweeper de o dificultate setabila de utilizator(din cod), dar am observat niste diferente cu aplicatia de care ma folosesc pe telefonul mobil, ele fiind in mare marte niste feature-uri care ar fi foarte bine de avut, dar mai greu de realizat.

Concluzii

Download

333cc_andreev_hristofor_minesweeper_pm.zip

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

IDE-ul folosit https://www.arduino.cc/en/software

Biblioteca lui Joao Lopes folosita in cadrul proiectului https://github.com/JoaoLopesF/SPFD5408

Codul folosit pentru a obtine o adevarata randomizare a jocului https://rheingoldheavy.com/better-arduino-random-values/

Export to PDF