Table of Contents

Vlad MOISESCU (78558) - Nume proiect

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Voi implementa jocul Snake pe o matrice de leduri. Acesta se va controla prin intermediul butoanelor.

Scopul jocului este acela de a acumula un punctaj cat mai mare.

Ideea de la care a pornit jocul este aceea de a face ceva amuzant si distractiv din care pot sa invat. Am vazut o implementare a acestui joc si are un impact vizual impresionant.

Proiectul este util pentru momentele in care ai nevoie de un pic de relaxare in urma unei zile obositoare.

Descriere generală

Jocul va rula pe o matrice de leduri 8*8.

Se vor utiliza 6 butoane, 4 pentru miscari, unul pentru pauza si unul pentru joc nou.

In momentul in care jucatorul este in pericol de a pierde, buzzerul va porni un semnal de atentionare.

Hardware Design

Lista de piese necesare:

Schema electrica:

Software Design

Pentru realizarea părții software a proiectului am folosit Atmel Studio 7.0, din care am generat un fisier .hex pe care l-am încărcat pe plăcuță cu ajutorul aplicației puse la dispoziție: HIDBootFlash.

Pentru aconstrui sarpele am utilizat un vector de coordonate. Initial sarpele are lungime 2, iar restul elementelor din vector care nu fac parte din sarpe sunt initializate cu -1. La fiecare miscare a sarpelui schimb valoarea capului in functie de directie, iar restul elementelor iau valoarea elementului din fata lor. Coliziunea o verific doar cu capul, deoarece numai acesta poate sa produca pierdera jocului. Mancarea sarpelui este tot un element de tip coordonata si o generez folosind functia rand(). Toate acestea le retin pentru afisare intr-un vector cu dimensiunea de 8 si elemente de tip uint8_t pe care il reinitializez la fiecare pas. Comenzile de miscare ale sarpelui sunt implementate folosind intreruperi pentru a evia dezavantajele delay-ului.

Functii implementate:

Rezultate Obţinute

Concluzii

A fost un proiect intersant din care am învățat multe lucruri ce țin de partea hardware.

Download

vlad_moisescu.zip

Jurnal

Bibliografie/Resurse