Differences

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

Link to this comparison view

pm:prj2023:amocanu:implementare-joc-battleship:create-page [2023/05/24 20:43]
robert_andrei.leahu
pm:prj2023:amocanu:implementare-joc-battleship:create-page [2023/05/30 10:31] (current)
robert_andrei.leahu
Line 2: Line 2:
  
 =====Introducere===== =====Introducere=====
-Am decis sa fac implementarea jocului Battleship, folosind un microcontroller,​ o matrice cu LED-uri, m-am gândit sa folosesc un ecran LCD pentru scor, un timer pe care îl folosesc pentru a avea timeout la miscări ​si un buzzer pe care îl folosesc atunci cand câstigi/​pierzi,​ eventual dupa fiecare miscare. ​+Am decis sa fac implementarea jocului Battleship, folosind un microcontroller,​ o matrice cu LED-uri, m-am gândit sa folosesc un ecran LCD pentru scor, un servomotor ​care indica ce player ataca si un buzzer pe care îl folosesc atunci cand câstigi/​pierzi,​ eventual dupa fiecare miscare. ​
  
 Afișajul se va împărți ​ în două regiuni egale, una pentru fiecare jucător si se vor genera cel puțin două forme diferite de nave / vapoare pentru fiecare jucător, plasate aleator pe spațiul de joc.  Afișajul se va împărți ​ în două regiuni egale, una pentru fiecare jucător si se vor genera cel puțin două forme diferite de nave / vapoare pentru fiecare jucător, plasate aleator pe spațiul de joc. 
  
-Poziția de lovire va fi selectată de un jucător folosind 4 butoane pentru direcțiile stânga, dreapta, sus, jos sau un joystick. Confirmarea poziției se va realiza folosind un alt buton;  ​+Poziția de lovire va fi selectată de un jucător folosind 4 butoane pentru direcțiile stânga, dreapta, sus, jos sau un joystick. Confirmarea poziției se va realiza folosind un alt buton.
  
-Odata ce un „vapor” a fost lovit și scufundat, led-urile aferente lui se vor aprinde într-o anumită culoare și vor rămâne aprinse pe toată durata jocului;  ​+Odata ce un „vapor” a fost lovit și scufundat, led-urile aferente lui se vor aprinde într-o anumită culoare și vor rămâne aprinse pe toată durata jocului.
  
-Pozițiile de pe matrice unde s-a încercat o lovire, însă ele au fost libere, vor rămâne aprinse pe toată durata jocului înt-o anumită culoare.  ​+Pozițiile de pe matrice unde s-a încercat o lovire, însă ele au fost libere, vor rămâne aprinse pe toată durata jocului înt-o anumită culoare(rosu).  ​
  
-În momentul în care un jucător câștigă se va afișa un mesaj  corespunzător,​ precum și scorul, iar  buzzer-ul o sa inceapa sa cante. Buzzer-ul o să cânte și atunci când un jucător o să piardă. Dupa fiecare miscare am decis sa pun un timeout, pentru ca jucătorul să se gândească,​ folosind un timer+În momentul în care un jucător câștigă se va afișa un mesaj  corespunzător,​ precum și scorul, iar  buzzer-ul o sa inceapa sa cante.
  
 =====Descriere Generala===== =====Descriere Generala=====
Line 38: Line 38:
  
 {{:​pm:​prj2023:​amocanu:​implementare-joc-battleship:​schema_electrica-1.png?​755|}} {{:​pm:​prj2023:​amocanu:​implementare-joc-battleship:​schema_electrica-1.png?​755|}}
 +
 +**Completarea schemei electrice:​**
 +
 +{{:​pm:​prj2023:​amocanu:​implementare-joc-battleship:​schema_electrica2.2.png?​755|}}
  
 =====Software Design===== =====Software Design=====
Line 56: Line 60:
  
 void setup() { void setup() {
 +  const int buzzer = 9; //buzzer to arduino pin 9
   randomSeed(analogRead(0));​ // seeds the random number generator by a value obtained from doing AnalogRead on pin A0   randomSeed(analogRead(0));​ // seeds the random number generator by a value obtained from doing AnalogRead on pin A0
   myServo.attach(13); ​  // attaches the servo on pin 9 to the servo object   myServo.attach(13); ​  // attaches the servo on pin 9 to the servo object
   lcd.backlight();​ // turn on backlight   lcd.backlight();​ // turn on backlight
-  lcd.begin(); ​    ​// initialize the lcd+  ​//​lcd.init(); ​    
 +  ​lcd.begin();​ // initialize the lcd
  
   lc.shutdown(0,​ false); ​  // turns the display on    lc.shutdown(0,​ false); ​  // turns the display on 
Line 152: Line 158:
 </​code>​ </​code>​
  
 +  * am setat ca palyer-ul sa se poata misca de pe butoanele 2,​6,​8,​4(sus,​dreapta,​jos,​stanga)
 +  * de pe butonul 5 de pe keypad sa atace, iar de pe butoanele 1 si 3 sa arate unde sunt pozitionate navele
 +player-ului 0, respectiv 1
 +  * de pe butonul 9 am setat sa intre in CHEAT MODE 8-O :!: 8-), adica pentru player-ul 1 nava player-ului 0 o sa se afle pe poz
 +A[7][0], iar acesta daca o doboara o sa fie WIN
 +  * pentru player-ul 0 am setat dupa CHEAT MODE, ca matricea sa fie full de nave astfel incat orice loveste sa fie HIT
 +  * la fiecare MISS, buzzer-ul incepe sa sune, iar la WIN acesta o sa sune de 3 ori
  
 =====Rezultate Obtinute===== =====Rezultate Obtinute=====
 +{{:​pm:​prj2023:​amocanu:​implementare-joc-battleship:​poza2.jpg?​300|}}{{:​pm:​prj2023:​amocanu:​implementare-joc-battleship:​poza3.jpg?​300|}}{{:​pm:​prj2023:​amocanu:​implementare-joc-battleship:​poza4.jpg?​300|}}{{:​pm:​prj2023:​amocanu:​implementare-joc-battleship:​poza5.jpg?​300|}}{{:​pm:​prj2023:​amocanu:​implementare-joc-battleship:​poza6.jpg?​300|}}{{:​pm:​prj2023:​amocanu:​implementare-joc-battleship:​poza7.jpg?​300|}}
 +
 +Link functionalitate joc: https://​drive.google.com/​file/​d/​1RmKv85lGWfdCYsZFTIDbRUb7dYbA8ft5/​view?​usp=sharing
  
-<​note>​ 
-</​note>​ 
  
 =====Concluzii===== =====Concluzii=====
Line 165: Line 179:
  
 <​note>​ <​note>​
 +{{:​pm:​prj2023:​amocanu:​implementare-joc-battleship:​battleship_game.zip|}}
 </​note>​ </​note>​
  
Line 180: Line 195:
   * [[pm:​prj2023:​amocanu:​implementare-joc-battleship:​create-page|]]   * [[pm:​prj2023:​amocanu:​implementare-joc-battleship:​create-page|]]
   * https://​www.geeksforgeeks.org/​check-if-two-given-line-segments-intersect/​   * https://​www.geeksforgeeks.org/​check-if-two-given-line-segments-intersect/​
-  * https://​wayoda.github.io/​LedControl/​pages/​software?​fbclid=IwAR14bmuPHK9cT6-bvWAnUvBlVggnvCTMq0_xEhhDtvhNI_r7f4MsGbPkc-o 
   * https://​forum.arduino.cc/​t/​turning-off-i2c-backlight/​108963?​fbclid=IwAR1xp6YQ1ukRXlfsvukuQEFxVcYd26rFnW6QF1iJ_VPmg6dZ3_G2gvFFvMc   * https://​forum.arduino.cc/​t/​turning-off-i2c-backlight/​108963?​fbclid=IwAR1xp6YQ1ukRXlfsvukuQEFxVcYd26rFnW6QF1iJ_VPmg6dZ3_G2gvFFvMc
   * http://​www.geeksforgeeks.org/​orientation-3-ordered-points/​   * http://​www.geeksforgeeks.org/​orientation-3-ordered-points/​
  
 </​note>​ </​note>​
pm/prj2023/amocanu/implementare-joc-battleship/create-page.1684950209.txt.gz · Last modified: 2023/05/24 20:43 by robert_andrei.leahu
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