Sebastian COJOCARIU (92880) - Battleship

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

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:)

Descriere generală

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.

Hardware Design

Lista de piese:

  1. 2 x placa arduino PM2019.
  2. 2 x LCD KMR-1.8 SPI color.
  3. 2 x joystick pentru controlul jocului pentru fiecare placa.
  4. Componentele generale pentru placa.
  5. Cabluri de legatura.
  6. Fire mama-mama.

Schema electrica

 1200

Software Design

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.

Rezultate Obţinute

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:))

 1200  1200  1200  1200

Concluzii

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!:)

Download

Jurnal

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.

Bibliografie/Resurse

pm/prj2019/dghilinta/1997.txt · Last modified: 2021/04/14 17:07 (external edit)
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