Grupa 333CC
Ideea principala a proiectul era de a crea cu ajutorul placutei Arduino UNO un joc de minesweeper.
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.
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.”
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.
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/