Table of Contents

BattleShip

Introducere

Proiectul consta intr-un joc minimal de Battleship cu 2 jucatori (umani), realizat folosind minimul de piese necesar(doua joysitck-uri, doua ecrane, si un buzzer).

Descriere generală

Playerii primesc o aranjare random a pieselor pe care o pot vedea pe propriul ecran.

Turn-ul player-ului este semnalat de un led care face switch rapid on/off pe ecran ce reprezinta cursorul lui. Cursorul poate fi mutat prin joystick si prin apasarea acestuia se selecteaza tinta.

In functie daca a lovit barca jucatorului sau nu, led-ul tintit isi va schimba culoarea in mod specific.

Apoi vine turn-ul player-ului 2, si ciclul se va repeta pana ce unul din playeri a doborat toate piesele inamicului.

Buzzer-ul va semnala prin diferite sunete: tinta lovita, ratarea si finalul de joc (specific pentru fiecare player).

Hardware Design

Lista Piese:

Schema Electrica

Software Design

Mediu de dezoltare

Librarii si surse 3rd-party

Descrierea codului

Initializari

Folosesc o serie de variabile globale ce vor fi initializate in setup si folosite mai tarziu in joc: Pinii folositi pentru componente:

Variabile ce retin pozitia cursorului (curenta si precedenta):

Variabila ce retine playerul ce se afla la turn: player

Matrici de leduri liniarizate ce vorfi folosite pe parcursul jocului:

Variabile ce reprezinta entitatile ce pot aparea pe matrice:

Variabile pentru contorizarea timpului la intreruperi:

Functii folosite

Rezultate Obţinute

Demo: https://www.youtube.com/watch?v=ci0xViEkQDU

Concluzii

Am bifat un achievment pe care il am inca din copilarie: sa fac jocuri :)

Cred ca am sumarizat destul de bine continutul laboratoarelor de PM.

Download

333cb_anica_alexandru-gabriel_battleship.zip

Bibliografie/Resurse

Laboratoarele de PM

Biblioteca pentru control led-uri: https://github.com/FastLED/FastLED

Export to PDF