Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:avaduva:nim [2021/05/26 14:51]
stefan.popovici
pm:prj2021:avaduva:nim [2021/05/26 15:32] (current)
stefan.popovici
Line 13: Line 13:
 ==== Schema bloc ==== ==== Schema bloc ====
  
-{{:​pm:​prj2021:​avaduva:​nim_block_diagram.png|}}+{{:​pm:​prj2021:​avaduva:​nim_block_diagram.jpg|}}
  
 ====== Hardware Design ====== ====== Hardware Design ======
Line 28: Line 28:
  
 ==Schema circuitului== ==Schema circuitului==
-{{:​pm:​prj2021:​avaduva:​Nim_Tinkercad.png|}}+{{:​pm:​prj2021:​avaduva:​Nim_Tinkercad.jpg?700|}}
    
 ====== Software Design ====== ====== Software Design ======
 +Am folosit Arduino IDE 1.8.15 pentru dezvoltare. Am inclus biblioteca LiquidCrystal.h pentru a configura LCD-ul si pentru a afisa informatiile corespunzator.
 +
 +In ceea ce priveste implementarea,​ jocul incepe cu selectarea modului dorit. Se poate alege modul single player folosind butonul din stanga sau modul multiplayer folosind butonul central. Se va afisa un mesaj corespunzator,​ apoi se afiseaza numarul de obiecte din fiecare gramada, iar jucatorii incep sa isi efectueze mutarile pe rand. Jucatorul care face prima mutare este ales aleatoriu. In cazul computerului,​ acesta are implementata o strategie optima de joc, bazata pe teoria numerelor. Astfel, va incerca mereu ca, dupa mutarea sa, numarul de obiecte ramase in cele 3 gramezi sa aiba propritatea de suma-nim nula (ceea ce presupune ca valoarea obtinuta prin aplicarea operatiei binare xor pe cele 3 valori sa fie 0). Daca acest lucru nu este posibil, atunci obtinerea unei victorii depinde de o potentiala greseala a adversarului,​ iar computerul va alege sa faca o mutare aleatoare. Mai multe detalii despre strategia de joc optima se gasesc [[https://​en.wikipedia.org/​wiki/​Nim|aici]]. Finalul jocului este semnalat cu ajutorul buzzerului si printr-un mesaj corespunzator.
 +
 +====== Rezultate Obtinute ======
 +{{:​pm:​prj2021:​avaduva:​nim0.jpeg?​700|}}
 +{{:​pm:​prj2021:​avaduva:​nim2.jpeg?​700|}}
 +{{:​pm:​prj2021:​avaduva:​nim5.jpeg?​700|}}
 +{{:​pm:​prj2021:​avaduva:​nim6.jpeg?​700|}}
 +{{:​pm:​prj2021:​avaduva:​nim4.jpeg?​700|}}
  
 ====== Concluzii ====== ====== Concluzii ======
  
 ====== Download ====== ====== Download ======
 +Cod + prezentare video: {{:​pm:​prj2021:​avaduva:​Nim.zip|}}
  
 ====== Jurnal ====== ====== Jurnal ======
   * descriere + schema bloc: 30 aprilie 2021   * descriere + schema bloc: 30 aprilie 2021
 +  * hardware design, software design, rezultate, video, completare resurse + update descriere: 26 mai 2021
 ====== Bibliografie/​Resurse ====== ====== Bibliografie/​Resurse ======
  
 https://​en.wikipedia.org/​wiki/​Nim\\ https://​en.wikipedia.org/​wiki/​Nim\\
 https://​www.arduino.cc/​en/​Tutorial/​LibraryExamples/​LiquidCrystalDisplay\\ https://​www.arduino.cc/​en/​Tutorial/​LibraryExamples/​LiquidCrystalDisplay\\
 +https://​store.arduino.cc/​genuino-starter-kit\\
 [[https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​avaduva/​nim?​do=export_pdf | Export to PDF]] [[https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​avaduva/​nim?​do=export_pdf | Export to PDF]]
  
pm/prj2021/avaduva/nim.1622029897.txt.gz · Last modified: 2021/05/26 14:51 by stefan.popovici
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0