This shows you the differences between two versions of the page.
pm:prj2022:fstancu:minesweeper [2022/06/02 10:44] hristofor.andreev [Bibliografie/Resurse] |
pm:prj2022:fstancu:minesweeper [2022/06/02 10:48] (current) hristofor.andreev [Software Design] |
||
---|---|---|---|
Line 31: | Line 31: | ||
===== Software Design ===== | ===== 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. | ||
- | Am folosit IDE-ul Arduino si biblioteca lui Joao Lopes pentru a desena lucrurile pe ecran. | + | Ideea randomizarii: |
- | https://www.arduino.cc/en/software | + | |
- | https://github.com/JoaoLopesF/SPFD5408 | + | |
- | https://rheingoldheavy.com/better-arduino-random-values/ | + | |
- | + | ||
- | Codul pentru a obtine o randomizare adevarata pentru ca tabla de joc sa fie de fiecare data una noua si sa nu se repete | + | |
- | + | ||
"Î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. | "Î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. | 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. | ||
Line 67: | Line 61: | ||
IDE-ul folosit | IDE-ul folosit | ||
https://www.arduino.cc/en/software | https://www.arduino.cc/en/software | ||
+ | |||
Biblioteca lui Joao Lopes folosita in cadrul proiectului | Biblioteca lui Joao Lopes folosita in cadrul proiectului | ||
https://github.com/JoaoLopesF/SPFD5408 | https://github.com/JoaoLopesF/SPFD5408 | ||
+ | |||
Codul folosit pentru a obtine o adevarata randomizare a jocului | Codul folosit pentru a obtine o adevarata randomizare a jocului | ||
https://rheingoldheavy.com/better-arduino-random-values/ | https://rheingoldheavy.com/better-arduino-random-values/ |