This shows you the differences between two versions of the page.
pm:prj2022:abirlica:tic-tac-toe [2022/04/29 11:12] diana.tatulescu created |
pm:prj2022:abirlica:tic-tac-toe [2022/06/02 08:44] (current) diana.tatulescu |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Tic-tac-toe ====== | + | ====== Tic-tac-toe MultiPlayer====== |
- | ===== Introducere ===== | + | |
<note tip> | <note tip> | ||
- | Prezentarea pe scurt a proiectului vostru: | + | **Nume Prenume:** Tătulescu Diana-Andreea\\ |
- | * ce face | + | **Grupa:** 333CA\\ |
- | * care este scopul lui | + | **Email:** diana.tatulescu@stud.acs.upb.ro |
- | * care a fost ideea de la care aţi pornit | + | |
- | * de ce credeţi că este util pentru alţii şi pentru voi | + | |
</note> | </note> | ||
+ | |||
+ | ===== Introducere ===== | ||
+ | |||
+ | **Tic-tac-toe** (sau X și 0, așa cum mai este cunoscut) este un joc ce pune accentul pe logică și strategie. \\ | ||
+ | \\ | ||
+ | Nimic nu se compară cu turneele de X și 0 din timpul orelor sau cursurilor, acestea chiar fiind un bun antrenament pentru gândire, după cum spun specialiștii. Există foarte multe variante ale jocului, însă fiecare poate veni cu propriile reguli, vrea să joace cu prietenii sau poate doar vrea să își țină mintea antrenată. \\ | ||
+ | \\ | ||
+ | Tic-tac-toe a fost unul dintre jocurile copilăriei mele, fiind desemnată chiar campioană în gimnaziu, motiv pentru care mi-am propus să îl și implementez pentru a rămâne cu o amintire frumoasă în urma proiectului. | ||
+ | |||
+ | |||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | <note tip> | + | Proiectul constă într-un joc de X și 0, realizat cu ajutorul **Arduino UNO** și folosind ca display un **LCD SPI de 1.8"**. Jucătorii interacționează prin intermediul celor **2 module Joystick pe 2 axis**. Acestea permit jucătorilor deplasarea prin tabla de joc prin mișcări stânga-dreapta, sus-jos. Prin apăsarea joystick-urilor, jucătorii își poziționează piesa, după care așteaptă mișcarea oponentului.\\ |
- | O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează. | + | \\ |
+ | Rândul fiecărui jucător este indicat de semnale luminoase cu ajutorul a 3 LED-uri: | ||
+ | * **LED-ul VERDE** indică rândul primului jucător | ||
+ | * **LED-ul ALBASTRU** indică rândul celui de-al doilea jucător | ||
+ | * **LED-ul GALBEN** indică faptul că jocul se află în varianta Single Player, jocul începând cu acest mod by default. Acesta se poate schimba prin apăsarea unui buton din spate care va muta jocul pe varianta MultiPlayer, iar becul galben se va stinge.\\ | ||
+ | \\ | ||
+ | Proiectul este prevăzut și cu un buzzer care anunță mișcările fiecărui jucător, precum și începerea și terminarea meciurilor. Dacă mutarea nu este validă (este deja altă piesă acolo), sunetul buzzer-ului va fi mai puternic, iar jucătorul va trebui să selecteze o altă căsuță.\\ | ||
+ | \\ | ||
+ | În funcție de rezultat, pe LCD se va afișa un mesaj corespunzător și jocul va începe din nou. | ||
+ | |||
+ | === Schema Bloc === | ||
+ | |||
+ | {{:pm:prj2022:abirlica:schemabloc.drawio_1_.png?600|}} | ||
- | Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html | ||
- | </note> | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
- | <note tip> | + | === Listă piese === |
- | Aici puneţi tot ce ţine de hardware design: | + | |
- | * listă de piese | + | ^ Componentă ^ Cantitate ^ Observații ^ |
- | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | ^ Arduino UNO | 1 | | |
- | * diagrame de semnal | + | ^ Breadboard | 1 | | |
- | * rezultatele simulării | + | ^ Sursă de alimentare | 1 | | |
- | </note> | + | ^ Joystick 2 axis | 2 | | |
+ | ^ Buton | 1 | | | ||
+ | ^ Buzzer 5V | 1 | | | ||
+ | ^ LED | 3 | | | ||
+ | ^ Rezistență | 3 | 220Ohm | | ||
+ | ^ Fire | | | | ||
+ | |||
+ | === Schema electrică === | ||
+ | |||
+ | {{:pm:prj2022:abirlica:screenshot_686_.png?600|}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | === Diagrama de activitate === | ||
+ | {{:pm:prj2022:abirlica:soft.drawio.png?500|}} | ||
- | <note tip> | + | Librării utilizate: |
- | Descrierea codului aplicaţiei (firmware): | + | * Adafruit GFX |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | * Adafruit ST7735 |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | * SPI.h |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | |
- | * (etapa 3) surse şi funcţii implementate | + | Mediu: |
- | </note> | + | * Arduino IDE |
+ | |||
+ | Algortimi extra: | ||
+ | * Minimax - pentru modul SINGLEPLAYER | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | Start GAME:\\ |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | {{:pm:prj2022:abirlica:pm3.jpeg?500|}}\\ |
- | </note> | + | Mișcare PLAYER2:\\ |
+ | {{:pm:prj2022:abirlica:pm2.jpeg?500|}}\\ | ||
+ | Rezultat joc:\\ | ||
+ | {{:pm:prj2022:abirlica:pm1.jpeg?500|}} | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
Line 48: | Line 82: | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | * {{:pm:prj2022:abirlica:tic-tac-toe-multiplayer.zip|}} |
- | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un 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 ===== | ===== Jurnal ===== | ||
- | <note tip> | + | * 18.05 - Descriere proiect |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | * 20.05 - Schema bloc + cum vreau sa functioneze |
- | </note> | + | * 23.05 - Lista componente |
+ | * 24-26.05 - Partea HARDWARE | ||
+ | * 26.05 - Schema electrică | ||
+ | * 26.05 - 02.06 - Partea software | ||
+ | * 03.06 - Documentație OCW | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | + | === Resurse HARDWARE === |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | * [[https://fritzing.org/]] |
- | </note> | + | * [[https://www.arduino.cc/en/Tutorial/BuiltInExamples/Button]] |
+ | * [[https://create.arduino.cc/projecthub/MisterBotBreak/how-to-use-a-joystick-with-serial-monitor-1f04f0]] | ||
+ | |||
+ | === Resurse SOFTWARE === | ||
+ | * [[https://en.wikipedia.org/wiki/Minimax]] | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||