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/ | ||