Autorul poate fi contactat la adresa: Login pentru adresa
Am ales sa realizez jocul Pong pe un LCD cu pixeli. Input-ul va fi primit de la butoane, iar jocul se poate juca in 2 moduri:
1. Singleplayer: joci impotriva unui BOT. 2. Multiplayer: vor juca 2 jucatori, fiecare v-a avea butoanele lui.
Pentru a incepe jocul trebuie sa alegi modul de joc, setand switch-ul de sub LCD la numarul de juactori care vor juca(1 sau 2). De asemenea jocul va avea sunete pentru diferite momente cum ar fi: bila a tins unul dintre pereti sau un jucator, runda s-a terminat. Pe parcursul jocului se va afisa pe ecranul LCD scorul. O partida este castigata atunci cand un jucator a acumulat 4 puncte. In acel moment se revine la starea initiala cand iti alegi modul de joc.
Am ales sa realizez acest proiect pentru ca vreau sa vad cum este sa programezi un joc atat software cat si hardware.
Schema bloc:
Butoanele jucatorilor vor controla afisajul si vor determina scorul. Pentru modul singleplayer voi implementa un BOT care va controla oponentul si care sper ca va fi destul de bun(aparent nu poate fi batut).
Lista de piese:
Pentru dezvoltarea aplicatiei am folosit acelasi mediu ca la laborator, mai exact Programmers Notepad. Pentru a duce la indeplinirea proiectului am folosit o biblioteca furnizata de catre producator, biblioteca care se afla la paragraful Bibliografie/Resurse. M-am folosit doar de anumite functii din aceasta biblioteca, cum ar fi desenarea unui dreptunghi si setarea anumitor pixeli.
Jocul incepe cu un ecran in care se afla numele studentului care a realizat proiectul si grupa acestuia. Jocul incepe numai daca este setat numarul de jucatori din switch-ul de sub ecran. As fi putut sa fi facut asta si din software, sa se afiseze pe ecran, dar am vrut sa aduc si o componenta hardware in plus proiectului. La partea de software a trebuit sa implementez propriile functii pentru scrierea literelor/cifrelor pe ecran, folosindu-ma de functia de setare a pixelilor oferita de biblioteca. M-am folosit de variabile globale pentru a mentine diferite stai ale jocului, precum:
De asemenea am folosit define-uri pentru a-mi reseta jocul atunci cand un jucator inscrie.
O runda incepe prin alegerea in mod aleator a pozitiei in care se va duce prima data bila. Dupa fiecare frame verific colozinea bilei cu peretii si cu jucatorii. Verific apoi daca partida s-a terminat(daca un jucator a ajuns la 4 puncte). Din cauza framerate-ului destul de mic al display-ului in zona de joaca se vor vedea momentele cand se redeseneaza mingea si miscarile jucatorilor.
Original am folosit un display cu 20 de pini de pe adelaida. Am stat ceva zile sa gasesc o biblioteca buna, care sa functioneze pentru el, dar in final am zis sa trec la alt display, pe care il controlez mult mai usor. In urma acestor probleme intampinate am facut urmatoarea legatura: numarul de pini este direct proportional cu dificultatea programrii.
Terminat proiect: 27.05.2016