Differences

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

Link to this comparison view

pm:prj2023:danield:tictactoe [2023/05/28 21:52]
eduard.petcu [Software Design]
pm:prj2023:danield:tictactoe [2023/05/28 23:38] (current)
eduard.petcu [Rezultate Obţinute]
Line 1: Line 1:
 ====== TicTacToe ====== ====== TicTacToe ======
-Student: Petcu Eduard +Student: Petcu Eduard ​\\
 Grupa: 334CC Grupa: 334CC
  
Line 7: Line 6:
  
 Pentru acest proiect, voi implementa jocul de X si O pe un ecran de LCD SPI de 1.8". Pentru acest proiect, voi implementa jocul de X si O pe un ecran de LCD SPI de 1.8".
-Cei doi jucatori vor putea controla ​un joystick ​pentru a face o mutare.+Acesta va putea fi jucat fie de catre 2 jucatori, in modul ''​P v P''​ fie de catre un singur jucator in modul ''​P v Com''​. 
 +Controlul jocului va avea loc exclusiv din joystick.
  
 Am ales sa pornesc pe ideea aceasta intrucat am vrut sa imbin invatarea programarii Am ales sa pornesc pe ideea aceasta intrucat am vrut sa imbin invatarea programarii
Line 13: Line 13:
 de imagini pe un LCD. de imagini pe un LCD.
  
-Proiectul are ca scop realizarea unui joc utilizand componente hardware.+Proiectul are ca scop realizarea unui joc standard ​utilizand componente hardware.
  
 ===== Descriere generală ===== ===== Descriere generală =====
Line 45: Line 45:
 din care jucatorul poate alege daca sa joace contra unui alt jucator sau contra calculatorului. \\  din care jucatorul poate alege daca sa joace contra unui alt jucator sau contra calculatorului. \\ 
 In functia ''​loop()''​ se asteapta ca jucatorul sa aleaga unul din cele 2 moduri de joc. \\ \\ In functia ''​loop()''​ se asteapta ca jucatorul sa aleaga unul din cele 2 moduri de joc. \\ \\
-La inceperea jocului, se apeleaza una din functiile ''​PvPGame()''​ sau ''​PvComGame()'',​ care se ocupa de jocul de TicTacToe propriu-zis.\\+La inceperea jocului, se apeleaza una din functiile ''​PvPGame()''​ sau ''​PvComGame()'',​ care se ocupa de jocul de TicTacToe propriu-zis. ​\\ \\
 In cele doua functii, se verifica daca jocul nu este terminat (in metoda ''​resultOfGame()''​). In cazul in care meciul este inca in  In cele doua functii, se verifica daca jocul nu este terminat (in metoda ''​resultOfGame()''​). In cazul in care meciul este inca in 
 desfasurare,​ se verifica daca a avut loc o mutare a cursorului pe tabla de X si O. Verificarea are loc in functia ''​moveCursor()''​ la fiecare desfasurare,​ se verifica daca a avut loc o mutare a cursorului pe tabla de X si O. Verificarea are loc in functia ''​moveCursor()''​ la fiecare
-500 ms folosind tehnica de debounce. La apasarea joystick-ului,​ se verifica daca mutarea dorita este una valida iar in caz contraar, un sunet corespunzator se va auzi la buzzer. +500 ms folosind tehnica de debounce. La apasarea joystick-ului,​ se verifica daca mutarea dorita este una valida iar in caz contrar, un sunet corespunzator se va auzi la buzzer. ​\\ \\ 
- +Metoda ''​endGameText(int result)''​ este apelata la finalul jocului, iar in functie de rezultatul partidei, se va afisa
-<note tip> +  * X won!  
-Descrierea codului aplicaţiei ​(firmware): +  * O won! 
-  * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) +  * DRAW! 
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib) +pe ecran timp de 5 secunde. \\ \\ 
-  * algoritmi şi structuri ​pe care plănuiţi să le implementaţi +LED-ul RGB este folosit in modul de ''​PvP''​ pentru a indica ce jucator trebuie sa faca o mutare ​(culoarea rosu -X trebuie sa mute; culoarea albastra -> O trebuie sa mute). De asemenea, acesta se aprinde la finalul jocului in culoarea jucatorului castigator sau in culoarea galbena (daca rezultatul este o remiza).
-  ​* ​(etapa 3) surse şi funcţii implementate +
-</note>+
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +Schema electrica: 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru+{{ :​pm:​prj2023:​danield:​ttt-fizic.jpeg?200 |}} 
-</​note>​+ 
 +Meniu principal:​ 
 +{{ :​pm:​prj2023:​danield:​ttt-mainmenu.jpeg?​200 |}} 
 + 
 +Tabla de joc: 
 +{{ :​pm:​prj2023:​danield:​ttt-tablepvp.jpeg?​200 |}} 
 + 
 +Victorie X: 
 +{{ :​pm:​prj2023:​danield:​ttt-x-won.jpeg?​200 |}} 
 + 
 +Remiza: 
 +{{ :​pm:​prj2023:​danield:​ttt-draw.jpeg?​200 |}}
  
 ===== Concluzii ===== ===== Concluzii =====
  
 +Experienta de lucru la acest proiect a fost mai placuta decat ma asteptam intrucat am reusit sa aplic cunostintele invatate in cadrul laboratorului si am reusit sa realizez tot ce mi-am propus. Cel mai mult mi-a placut sa lucrez la partea software deoarece fiecare functie implementata avea un impact vizual pe LCD. \\ De asemenea, mi-a placut sa lucrez cu functiile din biblioteca ''​Adafruit_GFX.h''​ intrucat functionau similar cu functiile din framework-ul folosit la cursul de // Elemente de Grafica pe Calculator//​.
 ===== Download ===== ===== Download =====
 Codul sursa se poate gasi in arhiva: Codul sursa se poate gasi in arhiva:
Line 72: Line 82:
 ===== Jurnal ===== ===== Jurnal =====
  
-<note tip> +  * 2 mai - achizitionarea componentelor hardware necesare proiectului 
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul ​proiectului. +  * 17 mai - configurarea partii hardware a proiectului ​si verificarea ca toate componentele functioneaza 
-</​note>​ +  * 20 mai - inceputul design-ului software 
 +  * 27 mai - finalizarea partii software a proiectului
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
 https://​eessential.blogspot.com/​2017/​12/​18-128-x-160-tft-lcd.html?​m=1 \\ https://​eessential.blogspot.com/​2017/​12/​18-128-x-160-tft-lcd.html?​m=1 \\
pm/prj2023/danield/tictactoe.1685299944.txt.gz · Last modified: 2023/05/28 21:52 by eduard.petcu
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