This shows you the differences between two versions of the page.
pm:prj2022:fstancu:minesweeper [2022/06/01 03:08] hristofor.andreev [Concluzii] |
pm:prj2022:fstancu:minesweeper [2022/06/02 10:48] (current) hristofor.andreev [Software Design] |
||
---|---|---|---|
Line 13: | Line 13: | ||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | <note tip> | + | |
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. | 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. | ||
- | </note> | + | |
Line 21: | Line 21: | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
- | <note tip> | + | |
Lista de piese: | Lista de piese: | ||
placuta Arduino Uno R3 | placuta Arduino Uno R3 | ||
Shield cu LCD grafic si touchscreen de 2.4" | Shield cu LCD grafic si touchscreen de 2.4" | ||
- | </note> | ||
+ | |||
+ | {{: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. | ||
- | <note tip> | + | Ideea randomizarii: |
- | Am folosit IDE-ul Arduino si biblioteca lui Joao Lopes pentru a desena lucrurile pe ecran. | + | "Î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. |
- | https://www.arduino.cc/en/software | + | 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 ===== | ||
- | https://github.com/JoaoLopesF/SPFD5408 | ||
- | </note> | ||
- | ===== Rezultate Obţinute ===== | ||
- | |||
- | <note tip> | ||
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. | 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. | ||
- | </note> | + | |
===== Concluzii ===== | ===== Concluzii ===== | ||
Line 47: | Line 47: | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | |
{{:pm:prj2022:fstancu:333cc_andreev_hristofor_minesweeper_pm.zip|}} | {{:pm:prj2022:fstancu:333cc_andreev_hristofor_minesweeper_pm.zip|}} | ||
- | </note> | + | |
===== Jurnal ===== | ===== Jurnal ===== | ||
Line 59: | 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> | ||