This shows you the differences between two versions of the page.
|
pm:prj2023:amocanu:implementare-joc-battleship:create-page [2023/05/24 01:19] 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 19: | Line 19: | ||
| **SCHEMA_BLOC:** | **SCHEMA_BLOC:** | ||
| - | {{:pm:prj2023:amocanu:implementare-joc-battleship:screenshot_2023-05-07_135554.png?500|}} | + | {{:pm:prj2023:amocanu:implementare-joc-battleship:poze_pm_schema.png?600|}} |
| </note> | </note> | ||
| 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> | ||
| =====Jurnal===== | =====Jurnal===== | ||
| - | <note> | + | * 22.04 -> alegerea temei proiectului |
| - | </note> | + | * 15.05 -> Milestone 1 |
| + | * 23.05 -> Milestone 2 | ||
| + | * 30.05 -> Prezentare finala | ||
| =====Bibliografie/Resurse===== | =====Bibliografie/Resurse===== | ||
| Line 177: | Line 194: | ||
| * {{:pm:prj2023:amocanu:implementare-joc-battleship:document.pdf|}} | * {{:pm:prj2023:amocanu:implementare-joc-battleship:document.pdf|}} | ||
| * [[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://forum.arduino.cc/t/turning-off-i2c-backlight/108963?fbclid=IwAR1xp6YQ1ukRXlfsvukuQEFxVcYd26rFnW6QF1iJ_VPmg6dZ3_G2gvFFvMc | ||
| + | * http://www.geeksforgeeks.org/orientation-3-ordered-points/ | ||
| </note> | </note> | ||