Table of Contents

Andrei STANCU (67687) - Avionasele

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Toata lumea stie jocul Battleships. In acest proiect voi implementa un joc asemanator, dar cu avioane. Deoarece il jucam foarte mult in liceu in timpul orelor de matematica, mereu ramaneam fara foi in caiet. Astfel m-am decis sa imi fac propriul joc, economisind astfel foile din caietul de matematica.

Reguli

Regulile sunt foarte simple: Distruge toate avioanele adversarului tau inainte sa le distruga el pe alea tale. Pentru a distruge un avion, trebuie sa lovesti cabina avionului.

Descriere generală

Vor exista 6 butoane pentru fiecare jucator. 4 pentru deplasarea unui cursor, al 5-lea pentru a selecta locul in care jucatorul vrea sa traga si al 6-lea pentru a roti un avion in momentul asezari. Pentru asezarea avioanelor, fiecare jucator va parcurge matricea, isi va alege un loc pentru cabina avionului si va roti avionul in ce mod doreste. Dupa ce fiecare jucator termina de asezat avioanele, pe ecran vor mai aparea doua harti noi de joc goale, fiecare reprezentand harta inamicului. Jucatorii vor alege cu unu din cele 4 butoane o casuta in care vor sa traga, si cu al 5-lea buton vor lansa un atac. In functie de rezultatul atacului, jocul va scoate un sunet corespunzator. La finalul jocului fiecare jucator va asculta o melodie diferita, in functie de rezultatul obtinut.

Hardware Design

Listă de piese:

Schema electrica

Software Design

Am folosit ca mediu de dezvoltare Programmers Notepad. Pentru a face LCD-ul sa functioneze am folosit bibliotecile ili9341.

Jocul se joaca pe aceeasi placuta, jucatorii actionand pe rand. Intai fiecare jucator isi va pozitiona cele 3 avioane. Pentru a pozitiona un avion, se deplaseaza cursorul catre pozitia in care se doreste a fi “capul” avionasului, se apasa pe butonul de “select”, si ori se apasa pe butonul “fire” pentru a plasa avionul, ori se apasa din nou pe butonul “select” pentru a-l roti. Daca in momentul in care avionul nu este plasat corect, jucatorul va putea sa selecteze alta casuta in care sa il plaseze. Pentru fiecare avion sunt retinute separat coordonatele “capului” si in ce fel este rotit avionul.

Dupa ce fiecare jucator isi plaseaza avioanele, ecranul se sterge si apare o harta noua reprezentand “harta” adversarului. Fiecare jucator va selecta un loc de pe harta. Daca va nimeri un avion, va putea sa traga din nou. Pentru a marca tot avionul dupa ce a fost lovit in “cap”, am folosit logica folosita si pentru a roti un avion.

La finalul jocului, se va afisa si acuratetea pe care a avut-o castigatorul.

Rezultate Obţinute

watch

Concluzii

A fost un proiect interesant in care am invatat cum sa lipesc componente pe o placa de baza si cum sa programez un microcontroller.

Desi am implementat tot ce mi-am propus, mi-ar fi placut sa fi facut jocul sa poata fi jucat de pe 2 placute diferite. Voi lucra la acest lucru in viitor deoarece nu pare a fi foarte complicat, timpul destul de scurt nu prea mi-a permis sa abordez si acest aspect.

Download

avionasele.zip

Jurnal

Bibliografie/Resurse

Biblioteci LCD: https://community.atmel.com/projects/ili9341-library-drive-22-tft-displayderived-adafruit-tft-library-ili9340-type-controller