Differences

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

Link to this comparison view

pm:prj2021:apredescu:sokoban10 [2021/05/24 17:43]
andreea.neculai2410 [Rezultate Obţinute]
pm:prj2021:apredescu:sokoban10 [2021/05/26 01:35] (current)
andreea.neculai2410 [Download]
Line 8: Line 8:
  
 ===== Descriere generală ===== ===== Descriere generală =====
 +Modul de joc este simplu. Jucătorul seletează dacă începe jocul apăsând pe joystick. Fiecare nivel este contra timp(60 de secunde de la începerea nivelului). La terminarea timpului, se va afișa un mesaj prin care jucătorul este anunțat că a pierdut. Pentru a muta personajul și implicit blocuirle, jucătorul mișcă joystickul în direcția dorită. Dacă reușește să poziționeze toate blocurile înainte de a se termina timpul, se va afișa mesajul de terminare a nivelului și se trece la următorul nivel. La finalizarea nivelului 3 jucătorul câștigă jocul și se afișează mesajul aferent.
 +
 +{{ :​pm:​prj2021:​apredescu:​untitled_diagram.jpg?​ |}}
 +===== Hardware Design =====
 În aceast proiect folosesc:\\ În aceast proiect folosesc:\\
-1. Arduino Uno <br>+1. Arduino Uno \\
 2. Modul Joystick PS2 compatibil Arduino \\ 2. Modul Joystick PS2 compatibil Arduino \\
 3. Ecran Nokia 5110 84x48 \\ 3. Ecran Nokia 5110 84x48 \\
 4. Buzzer \\ 4. Buzzer \\
 5. Fire mama-tata și tata-tata \\ 5. Fire mama-tata și tata-tata \\
-\\ 
-Modul de joc este simplu. Jucătorul seletează dacă începe jocul apăsând pe joystick. Fiecare nivel este contra timp(60 de secunde de la începerea nivelului). La terminarea timpului, se va afișa un mesaj prin care jucătorul este anunțat că a pierdut. Pentru a muta personajul și implicit blocuirle, jucătorul mișcă joystickul în direcția dorită. Dacă reușește să poziționeze toate blocurile înainte de a se termina timpul, se va afișa mesajul de terminare a nivelului și se trece la următorul nivel. La finalizarea nivelului 3 jucătorul câștigă jocul și se afișează mesajul aferent. 
- 
-{{ :​pm:​prj2021:​apredescu:​schema.jpg |}} 
-===== Hardware Design ===== 
 {{ :​pm:​prj2021:​apredescu:​schel.png |}} {{ :​pm:​prj2021:​apredescu:​schel.png |}}
  
Line 25: Line 24:
  
  
 +Am folosit Arduino IDE pentru scrierea codului și biblioteca Aafruit_GFX pentru desenarea fundalului. Codul pentru ticăitul de ceas este bazat pe laboratorul 1 de pm și se bazează pe întreruperi. Funcțiile LcdWriteCmd(),​ clearScreen(),​ LcdWriteData(),​ LcdWriteCharacter(),​ LcdWriteString(),​ LcdXY() realizează setup-ul lcd-ului, curățarea ecranului de pixeli, afișarea de pixeli pe ecran, afișarea unui caracter pe lcd în funcție de codificarea pe care i-am atribuit-o, scrierea unui string data ca parametru și poziționarea unui caracter sau a unui șir de caractere în funcție de o coordonată x și de una a lui y. \\ 
 +În momentul apăsării pe joystick se apelează funcția Level(), se copiază în interiorul funcției harta de la nivel, se fac setările necesare pentru afișarea hărții și se inițializează timpul de joc la 60 secunde. Numărul cutiilor care trebuie poziționate este dat de nivelul la care ne aflăm. Dacă o cutie se așează pe o poziție, aceasta nu mai poate fi mutată, iar numărul cutiilor rămase descrește. Nivelul se termină în momentul când numărul cutiilor care trebuie să fie mutate este 0 sau cand s-a terminat timpul. \\ 
 +În fișierul font.h am adăugat codificările caracterelor și cele 3 hărți al nivelelor 1, 2, 3. Pentru fiecare hartă: \\ 
 +   # = zid  
 +   @ = pion  
 +   '​ ' = spațiu  
 +   + = bloc  
 +   ! = poziția pe care trebuie să mutăm  
 +   0 = bloc poziționat (nu este vizibil de jucător, dar reține că blocul nu mai poate fi mutat) ​
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-{{ :​pm:​prj2021:​apredescu:​soko.jpeg?​100  ​:​pm:​prj2021:​apredescu:​soko_2_.jpeg?​100  ​}}+{{ :​pm:​prj2021:​apredescu:​soko.jpeg?​400 |}}
  
 +{{ :​pm:​prj2021:​apredescu:​soko_2_.jpeg?​400 |}}
  
-{{ :​pm:​prj2021:​apredescu:​soko_3_.jpeg?​100  ​|}}+{{ :​pm:​prj2021:​apredescu:​soko_3_.jpeg?​400 |}}
  
-{{ :​pm:​prj2021:​apredescu:​soko_8_.jpeg?​100  ​|}}+{{ :​pm:​prj2021:​apredescu:​soko_8_.jpeg?​400 |}}
  
-{{ :​pm:​prj2021:​apredescu:​soko_4_.jpeg?​100  ​|}}+{{ :​pm:​prj2021:​apredescu:​soko_4_.jpeg?​400 |}}
  
-{{ :​pm:​prj2021:​apredescu:​soko_5_.jpeg?​100 |}}+{{ :​pm:​prj2021:​apredescu:​soko_5_.jpeg?​400 |}}
  
-{{ :​pm:​prj2021:​apredescu:​soko_7_.jpeg?100 |}}+{{ :​pm:​prj2021:​apredescu:​soko_9_.jpeg?400 |}}
  
-{{ :​pm:​prj2021:​apredescu:​soko_6_.jpeg?​100 |}}+{{ :​pm:​prj2021:​apredescu:​soko_6_.jpeg?​400 |}}
  
-{{ :​pm:​prj2021:​apredescu:​soko_9_.jpeg?100 |}}+{{ :​pm:​prj2021:​apredescu:​soko_10_.jpeg?400 |}}
 ===== Concluzii ===== ===== Concluzii =====
 Mi-a făcut plăcere să lucrez la acest proiect. Acum că l-am terminat, îmi dau seama că puteam să mai adaug componente hardware pentru a-l face mai interesant(ex:​ un modul bluetooth pentru a transmite informția de la joystick la lcd sau un card de memorie pentru a face mai multe nivele). Cu toate acestea, jocul merge foarte bine. Mi-a făcut plăcere să lucrez la acest proiect. Acum că l-am terminat, îmi dau seama că puteam să mai adaug componente hardware pentru a-l face mai interesant(ex:​ un modul bluetooth pentru a transmite informția de la joystick la lcd sau un card de memorie pentru a face mai multe nivele). Cu toate acestea, jocul merge foarte bine.
Line 50: Line 58:
 ===== Download ===== ===== Download =====
  
-<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​PDF</​a></​html> ​ 
  
 +{{:​pm:​prj2021:​apredescu:​sokoban10.zip|}}
 ===== Bibliografie ===== ===== Bibliografie =====
 -bibliotecile arduino: Adafruit_GFX.h si Adafruit_PCD8544.h;​\\ -bibliotecile arduino: Adafruit_GFX.h si Adafruit_PCD8544.h;​\\
--youtube: https://​www.youtube.com/​watch?​v=RAlZ1DHw03g&​list=RDCMUCmHvGf00GDuPYG9DZqQKd9A&​index=2;​\\+-youtube:​https://​www.youtube.com/​watch?​v=RAlZ1DHw03g&​list=RDCMUCmHvGf00GDuPYG9DZqQKd9A&​index=2;​\\
 -laboartorul 1 pm;\\ -laboartorul 1 pm;\\
--wikipedia: https://​en.wikipedia.org/​wiki/​Sokoban;​\\+-wikipedia:​https://​en.wikipedia.org/​wiki/​Sokoban;​\\
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​PDF</​a></​html> ​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​PDF</​a></​html> ​
pm/prj2021/apredescu/sokoban10.1621867390.txt.gz · Last modified: 2021/05/24 17:43 by andreea.neculai2410
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