Differences

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

Link to this comparison view

pm:prj2022:imacovei:rps [2022/04/21 17:16]
alexandru.andrei99
pm:prj2022:imacovei:rps [2022/06/01 00:26] (current)
alexandru.andrei99
Line 1: Line 1:
 ====== Rock Paper Scissors ====== ====== Rock Paper Scissors ======
 +<​note>​
 +Nume: Andrei Alexandru-Razvan
 +
 +Grupa: 333CB
 +</​note>​
 ===== Introducere ===== ===== Introducere =====
  
-<​note>​ 
 Ideea proiectului a pornit de la experienta mea cu jocul Piatra, Foarfeca, Hartie. Cred ca oricine a jucat acest joc cu destule persoane a intalnit acel jucator care se misca mai greu pentru a castiga putin timp in care sa vada ce a ales oponentul si sa isi modifice propria alegere astfel incat sa castige. In plus, jocul are scopul de a elimina cazurile in care se joaca pana la 2/3 sau 3/5 etc. si pierzatorul incearca sa mai castige o sansa pretinzand ca runda decisiva nu a fost inca jucata. Ideea proiectului a pornit de la experienta mea cu jocul Piatra, Foarfeca, Hartie. Cred ca oricine a jucat acest joc cu destule persoane a intalnit acel jucator care se misca mai greu pentru a castiga putin timp in care sa vada ce a ales oponentul si sa isi modifice propria alegere astfel incat sa castige. In plus, jocul are scopul de a elimina cazurile in care se joaca pana la 2/3 sau 3/5 etc. si pierzatorul incearca sa mai castige o sansa pretinzand ca runda decisiva nu a fost inca jucata.
  
-Astfel, proiectul consta intr-un joc in care fiecare jucator va avea un set de 3 butoane corespunzatoare fiecarei alegeri (piatra / foarfeca / hartie), alaturi de alte 2 butoane care sevesc la inceperea unei noi runde si la resetarea scorului. Informatiile vor fi afisate pe un ecran LCD, mai exact scorul (numarul de runde castigate de fiecare jucator) impreuna cu indicatoare pentru a confirma ca alegerea facuta prin apasarea unui buton a fost inregistrata,​ o scurta numaratoare inversa inainte de a afisa rezultatul urmata de afisarea alegerilor jucatorilor si castigatorul. 
-</​note>​ 
 ===== Descriere generală ===== ===== Descriere generală =====
  
-<​note>​+Astfel, proiectul consta intr-un joc in care fiecare jucator va avea un set de 3 butoane corespunzatoare fiecarei alegeri (piatra / foarfeca / hartie), alaturi de alte 2 butoane care servesc la inceperea unei noi runde si la resetarea scorului. Informatiile vor fi afisate pe un ecran LCD, mai exact scorul (numarul de runde castigate de fiecare jucator) impreuna cu indicatoare pentru a confirma ca alegerea facuta prin apasarea unui buton a fost inregistrata. Dupa ce jucatorii au terminat de ales, se va afisa rezultatul rundei (castigatorul,​ pierzatorul sau egalitate si scorul actualizat) 
 Schema bloc: Schema bloc:
  
-{{:​pm:​prj2022:​imacovei:​schema_bloc.png}} +{{:​pm:​prj2022:​imacovei:​schema_bloc.png?700}}
-</​note>​+
  
 ===== Hardware Design ===== ===== Hardware Design =====
  
-<​note>​ 
   * Listă de piese:   * Listă de piese:
     * Placuta Arduino     * Placuta Arduino
Line 23: Line 24:
     * Buzzer     * Buzzer
     * Ecran LCD     * Ecran LCD
-</​note>​+ 
 + 
 +  * Schema electrica:​ 
 +{{:​pm:​prj2022:​imacovei:​RPS_Schema_Eagle.png?​700}} 
  
 ===== Software Design ===== ===== Software Design =====
 +  * Mediu de dezvoltare: Arduino IDE
 +  * Librarii 3rd-party:
 +      * Pentru lucrul cu LCD I2C: https://​github.com/​fdebrabander/​Arduino-LiquidCrystal-I2C-library
 +      * Pentru sunete buzzer am folosit o parte din: https://​github.com/​robsoncouto/​arduino-songs/​tree/​master/​nevergonnagiveyouup
 +  * Algoritm (pseudocod):​
 +<​code>​
 +gameControlInterruption()
 +  readInput()
 +  if (input == RESET)
 +    resetScoreAndRound()
 +  else
 +    newRound()
 +  playNextNoteOnBuzzer()
  
  
-<​note>​ +player2InputInterruption() 
-</note>+  readInput() 
 +  updatePlayer2Pick() 
 +  playNextNoteOnBuzzer() 
 + 
 + 
 +player1InputInterruption() 
 +  readInput() 
 +  updatePlayer1Pick() 
 +  playNextNoteOnBuzzer() 
 + 
 + 
 +loop() 
 +  if (both_players_ready) 
 +    determineRoundOutcome() 
 +    updateScore() 
 +    displayResults() 
 +  else 
 +    displayRoundStatus() 
 +</code> 
 +  * Surse: https://​github.com/​andreialexandru99/​Rock-Paper-Scissors-Arduino
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
 +Proiectul functioneaza cum mi-am dorit. Am reusit chiar sa adaug o functionalitate noua, chiar daca foarte simpla, si anume fiecare apasare de buton sa cante o noua nota dintr-un cantec. In ciuda simplitatii,​ a adus mai multa placere in lucratul la proiect. :)
  
-<​note>​ +Poze cu ansamblul final:
-</​note>​+
  
-===== Concluzii =====+{{:​pm:​prj2022:​imacovei:​rps_off.jpg?​700}} 
 +{{:​pm:​prj2022:​imacovei:​rps_on.jpg?​700}}
  
 ===== Download ===== ===== Download =====
- +Proiectul poate fi descarcat de pe GitHub sau direct de {{pm:​prj2022:​imacovei:​rock-paper-scissors-arduino-main.zip |aici}}.
-<​note>​ +
-</​note>​+
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
- 
-<​note>​ 
-</​note>​ 
  
 <​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>​
  
  
pm/prj2022/imacovei/rps.1650550567.txt.gz · Last modified: 2022/04/21 17:16 by alexandru.andrei99
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