This shows you the differences between two versions of the page.
|
pm:prj2021:agrigore:connect4 [2021/05/27 15:04] mihaela.nuta1207 |
pm:prj2021:agrigore:connect4 [2021/06/03 14:38] (current) mihaela.nuta1207 |
||
|---|---|---|---|
| Line 82: | Line 82: | ||
| |GND |GND | | |GND |GND | | ||
| |VCC |5V | | |VCC |5V | | ||
| + | |||
| + | |||
| + | ===== Software Design ===== | ||
| + | * mediu de dezvoltare - **Arduino Ide** | ||
| + | * librării şi surse 3rd-party | ||
| + | * **PinChangeInt.h** - librărie cu funcționalități de attach și detach pentru întreruperi | ||
| + | * **TFT.h** - librărie Arduino pentru ecran tft | ||
| + | * **SPI.h** - librărie Arduino pentru comunicare SPI având ca master plăcuța Arduino | ||
| + | * Un exemplu Arduino built-in: [[https://www.arduino.cc/en/Tutorial/BuiltInExamples/toneMelody]] | ||
| ==== Diagrama stărilor ==== | ==== Diagrama stărilor ==== | ||
| Line 90: | Line 99: | ||
| * **REPLAY SCREEN**: dupa câteva secunde, pe ecran apare: **PRESS GREEN TO PLAY**. După ce se apasă pe butonul verde, jocul repornește, iar starea va deveni starea inițială, adică **BEGIN** | * **REPLAY SCREEN**: dupa câteva secunde, pe ecran apare: **PRESS GREEN TO PLAY**. După ce se apasă pe butonul verde, jocul repornește, iar starea va deveni starea inițială, adică **BEGIN** | ||
| - | + | ==== Implementare ==== | |
| - | ===== Software Design ===== | + | * Pe baza butoanelor, jocul poate fi urmărit ca un automat de stări. |
| - | * mediu de dezvoltare - **Arduino Ide** | + | * În loop se pot observa aceste stări: GAME_INIT, GAME_BEGINS, GAME_STARTED, cât și alte variabile de stare: player_switched (care imi spune dacă un player și-a realizat tura, eu ar trebui să afișez pe ecran ceea ce el a făcut, iar următorul jucător poate continua) |
| - | * librării şi surse 3rd-party | + | * Am ales să folosesc destul de multe variabile de stări, înafară de acestea, deoarece am dorit să nu desenez la fiecare apel de loop încontinuu aceleași forme care oricum erau desenate. |
| - | * **PinChangeInt.h** - librărie cu funcționalități de attach și detach pentru întreruperi | + | * În funcție de starea jocului, în anumite situații, am ales să redesenez ceea ce voiam să șterg cu culoarea background-ului, deoarece era mai costisitor să dau clear la ecran, după care să redesenez totul (în primul rând ar fi trebui să țin minte ce am desenat și în al 2-lea rând ecranul ar fi făcut un flicker constant, ceea ce ar fi fost urât). |
| - | * **TFT.h** - librărie Arduino pentru ecran tft | + | * Se poate observa că în cod sunt foarte multe define-uri, deoarece am vrut să economisesc cât mai multă memorie, define-urile fiind folosite doar in etapa de preprocesare |
| - | * **SPI.h** - librărie Arduino pentru comunicare SPI având ca master plăcuța Arduino | + | |
| - | * algoritmi şi structuri | + | |
| - | * surse şi funcţii implementate | + | |
| ===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
| + | * {{:pm:prj2021:agrigore:1.jpeg?400|}} | ||
| + | * {{:pm:prj2021:agrigore:2.jpeg?400|}} | ||
| + | * {{:pm:prj2021:agrigore:3.jpeg?400|}} | ||
| ===== Concluzii ===== | ===== Concluzii ===== | ||
| + | * Jocul este unul practic, realizat destul de low-cost. Am reușit să realizez tot ce mi-am propus, ba chiar am adăugat și lucruri în plus (la nivel de efect/software) | ||
| + | * Dacă nu ai jocuri, îți faci LOL | ||
| ===== Download ===== | ===== Download ===== | ||
| + | {{:pm:prj2021:agrigore:nuta_mihaela_madalina_334cb_connect4.zip|}} | ||
| ===== Jurnal ===== | ===== Jurnal ===== | ||
| * 26 aprilie - creare pagină pe ocw | * 26 aprilie - creare pagină pe ocw | ||
| Line 139: | Line 149: | ||
| * documentație librărie tft.h: [[https://www.arduino.cc/en/Reference/TFTLibrary]] | * documentație librărie tft.h: [[https://www.arduino.cc/en/Reference/TFTLibrary]] | ||
| * librăria PinChangeInt: [[https://code.google.com/archive/p/arduino-pinchangeint/downloads]] | * librăria PinChangeInt: [[https://code.google.com/archive/p/arduino-pinchangeint/downloads]] | ||
| + | * sunete: [[https://www.arduino.cc/en/Tutorial/BuiltInExamples/toneMelody]] | ||
| + | * PDF pagina wiki: [[https://ocw.cs.pub.ro/courses/pm/prj2021/agrigore/connect4?do=export_pdf|Connect4]] | ||