Differences

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

Link to this comparison view

pm:prj2023:dene:shogi [2023/05/06 22:38]
adrian_emanuel.dicu created
pm:prj2023:dene:shogi [2023/05/30 06:37] (current)
adrian_emanuel.dicu [Download]
Line 30: Line 30:
   * Fire, Rezistente, etc   * Fire, Rezistente, etc
  
 +{{:​pm:​prj2023:​dene:​shogi_breadboard.png?​500|}}
 +
 +{{:​pm:​prj2023:​dene:​shogi_schematic.png?​500|}}
 ===== Software Design ===== ===== Software Design =====
  
 +**Mediu de dezvoltare:​** Arduino IDE
 +
 +**Biblioteci si surse 3rd-party:​** ​
 +  * "​SPFD5408_Adafruit_GFX.h"​ pentru grafica ​
 +  * "​SPFD5408_Adafruit_TFTLCD.h"​ pentru ecranul LCD TFT
 +  * "​SPFD5408_TouchScreen.h"​ pentru touchscreen
  
-<note tip> 
-FIXME Descrierea codului aplicaţiei (firmware): 
-  * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) 
   * librării şi surse 3rd-party (e.g. Procyon AVRlib)   * librării şi surse 3rd-party (e.g. Procyon AVRlib)
   * algoritmi şi structuri pe care plănuiţi să le implementaţi   * algoritmi şi structuri pe care plănuiţi să le implementaţi
   * (etapa 3) surse şi funcţii implementate   * (etapa 3) surse şi funcţii implementate
-</​note>​ 
  
 +**Implementare:​**
 +  * void setup()
 +  * void loop() -> asteapta dupa o mutare, calculeaza pozitia unde s-a apasat, verifica daca este o mutare valida, iar in caz afirmativ executa mutarea, rescriind tabla
 +  * void drawBoard() -> deseneaza gridul tablei, piesele si pozitiile unde se poate efecta o mutare valida
 +  * bool isValidSelection(int posX, int posY, char currentPlayer) -> determina daca selectia piesei din casuta (posX, posY) de catre currentPlayer este valida
 +  * bool isSelectedBox(int posX, int posY, int selectedX, int selectedY) verifica daca (posX, posY) == (selectedX, selectedY)
 +  * char pieceType(char piece) -> returneaza jucatorul ('​A'​ sau '​B'​) care detine piece. Returneaza o valoare diferita daca piece nu e o piesa valida
 +  * void endGame(char player) -> afiseaza ecranul final
 +  * void movePiece(int startX, int startY, int endX, int endY) -> muta piesa din casuta (startX, startY) in casuta (endX, endY) (considera ca mutarea este valida)
 +  * bool isValidMove(int fromX, int fromY, int toX, int toY) -> determina daca mutarea piesei din casuta (fromX, fromY) in casuta (toX, toY) este valida
 +  * bool checkLine(int fromX, int fromY, int toX, int toY) -> determina daca toate casutele dintre (fromX, fromY) si (toX, toY) sunt libere
 +  * TSPoint waitTouch() -> asteapta o apasare a ecranului si returneaza coordonata punctului apasat
 +  * void IntroScreen() -> genereaza pagina de start a jocului
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +{{:​pm:​prj2023:​dene:​shogi1.jpeg?​300|}}{{:​pm:​prj2023:​dene:​shogi2.jpeg?​300|}}
-FIXME Care au fost rezultatele obţinute în urma realizării proiectului vostru. +
-</​note>​ +
 ===== Concluzii ===== ===== Concluzii =====
  
 ===== Download ===== ===== Download =====
  
-<note warning>​ +Arhiva care contine codul sursabibliotecile folositeschema electricadiagrama blocetc
-FIXME O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ surseschemeetc. Un fişier READMEun ChangeLogun script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). +
- +
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:​pm:​prj20??:​c?​** sau **:​pm:​prj20??:​c?:​nume_student** (dacă este cazul). **Exemplu:​** Dumitru Alin, 331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. +
-</​note>​ +
- +
-===== Jurnal =====+
  
-<note tip> +{{pm:​prj2023:​dene:​arhivapm.zip | Shogi.zip}}
-FIXME Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. +
-</​note>​+
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<​note>​ +**Resurse Software** 
-FIXME Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** ​şi **Resurse Hardware**. +  ​Laburile de PM =) 
-</note>+  ​[[https://​github.com/​JoaoLopesF/​SPFD5408 | Biblioteca pentru ecranul TFT LCD Touchscreen]] 
 +  * [[https://​www.hackster.io/​Sergey_Urusov/​arduino-mega-chess-d54383 | Pentru inspiratie]]
  
-<html><a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</a></html>+**Resurse Hardware** 
 +  * [[https://​www.conexelectronic.ro/​ro/​accesorii-computer-mono-placa/​16632-DISPLAY-ARDUINO-TFT-LCD-2-4-INCH.html | Display Arduino TFT LCD 2.4'​]] 
 +  * [[https://www.conexelectronic.ro/​ro/​computer-mono-placa/​4671-ARDUINO-UNO-R3-ORIGINAL.html?​search_query=arduino+uno&​results=11 | Arduino Uno R3]]
  
 +*// Arduino UNO pinout // 
 +{{ :​pm:​lab:​uno.jpg?​300 |}}
pm/prj2023/dene/shogi.1683401934.txt.gz · Last modified: 2023/05/06 22:38 by adrian_emanuel.dicu
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