This shows you the differences between two versions of the page.
pm:prj2022:fstancu:minesweeper [2022/06/01 10:43] hristofor.andreev [Rezultate Obţinute] |
pm:prj2022:fstancu:minesweeper [2022/06/02 10:48] (current) hristofor.andreev [Software Design] |
||
---|---|---|---|
Line 27: | Line 27: | ||
+ | {{:pm:prj2022:fstancu:arduino_minesweeper2.jpg?200|}} | ||
+ | {{:pm:prj2022:fstancu:arduino_minesweeper1.jpg?200|}} | ||
===== 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 | + | "Î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. | |
- | https://github.com/JoaoLopesF/SPFD5408 | + | 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 ===== | ===== Rezultate Obţinute ===== | ||
Line 58: | Line 59: | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | + | IDE-ul folosit |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | https://www.arduino.cc/en/software |
- | </note> | + | |
+ | 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/ | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||