Autorul poate fi contactat la adresa: Login pentru adresa
Scopul proiectului este dat de implementarea unei variante romanesti a jocului multiplayer Battleship (anume avioanele).
Jocul va putea fi jucat de 2 jucatori, fiecare avand LCD propriu si butoane proprii pentru a vizualiza situatia jocului de la un moment dat.
Ideea jocului este de a plasa un numar de avioane(de anumite forme predefinite si deobicei in numar de 3-4) pe o harta (matrice bidimensionala afisata pe LCD). Jocul incepe cand fiecare jucator a terminat de plasat propriile avioane pe harta. Acestia incearca sa ghiceasca succesiv parti ale avioanelor inamice(cap, aripa stanga, aripa dreapta, etc), cu mentiunea ca o data atinsa o parte dintr-un avion jucatorul mai capata o incercare .Jocul se incheie cand ambii jucatori au distrus avioanele inamice, asteptand verificarea castigatorului
Consider ca acest joc este util in intelegerea notiunilor capatate la laborator, oferindu-mi sansa sa imbin partea de dezvoltare hardware cu cea de software.Ideea in sine de a lucra cu 2 placute cu LCD propriu ce comunica serial este una captivanta si sper sa iasa conform asteptarilor:)
Sistemul cuprinde : doua placi de baza PM2019, fiecare avand atasata un LCD KMR 1-8' SPI propriu.Fiecare jucator va transmite comenzile de atac prin alegerea coordonatelor (4 butoane pentru directie si unul pentru confirmare). Rezultatul atacului va putea fi vizualizat pe LCD.
Lista de piese:
Am implementat un joc de avioane (Battleship).Jocul are un meniul la inceput format din 3 posibilitati (start cu setarile predefinite, adica o tabla 10 x 10 si 3 avioane, options in care apar alte 2 imagini pentru a seta atat dimensiunea table cat si numarul de avioane si exit).Jocul a fost facut in totalitate de mine, fara a ma inspira din alte surse de pe internet.Pentru a afisa pe LCD am folosit bibliotecile spi.h si ST7735R_TFT.h (incluse si in arhiva).Harta se ajusteaza la o dimensiune fixa, centrata pe ecran (o matrice 8×8 va ocupa la fel de mult ca una 12 x 12, laturile patratelor din matrice fiind diferit).Odata plasate avioanele apare o harta initializata unde jucatorul se deplaseaza cu o bila neagra(UP, DOWN, RIGHT, LEFT).La apasarea butonului Center de pe joystick se verifica daca a atins o parte a avionului si se ajusteaza ATTEMPTS sau NO_REMAINING (partile totale ramase de ghicit).Se coloreaza diferit in functie de ce se afla in casuta respectiva.
Am reusit sa termin in mare parte proiectul, cu mentiunea ca as vrea sa mai adaug cateva functionalitati in viitor (mai multe tipuri de avioane existente , afisarea sincrona a matricei oponentului, adica cat timp un jucator alege mutarea celalalt vede doar tabla sa si locul unde celalalt pune cercurile, etc).Imi place totusi modul cum se imbina acest “UI” facut din desenare de dreptunghiuri si scriere de text:))
Mi-a placut acest proiect pentru ca am putut realiza ceva tangibil, aducandu - mi aminte si de unul din jocurile copilariei mele! Sunt sigur ca va ramane o amintire placuta pentru “eu” din viitor!:)
06.05.2019 - Achizitionarea tuturor componentelor si lipirea completa a placutei.
21.05 - Incepere partea software.
23.05.2019 - Terminarea partii hardware ().
24.05.2019 - Terminarea codului.