Table of Contents

Maria-Georgiana MARIN (78287) - AVR Snake

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

snakelogomarin.jpg

Proiectul constă în realizarea unei variante a jocului Snake folosind un LCD grafic. Implementarea va pleca de la varianta clasică a jocului, însă va aduce în plus următoarele funcţionalitaţi:

Scopul proiecului este unul recreaţional şi de divertisment, în funcţie de funcţinalitaţile implementate acesta va oferi o experientă cât mai placută utilizatorului.

Motivul alegerii temei proiectului a constat atât în folosirea noţiunilor învaţate în cadrul laboratorelor de pe parcursul semestrului cât şi placerea de a juca acest joc pe primul meu telefon Nokia.

Descriere generală

Jucatorul va interacţiona cu jocul prin intermediul butoanelor ce vor fi de mai multe tipuri: de selecţie, de mişcare(sus, jos, stanga, dreapta).

Fiecare jucator va avea iniţial 3 vieti ce vor fi semnalate prin intermediul unor led-uri. În funcţie de activitatea jucatorului, jocul va avea anumite sunete. Momentul în care jucatorul caştigă sau pierde va fi semnalat prin sunete şi jocuri de lumini ale led-urilor.

Hardware Design

Lista de piese:

Software Design

Am folosit pentru a implementa partea software editorul Sublime si compilatorul avr-gcc. Alte medii folosite sunt: BootloaderHID si EAGLE.

Pentru a putea intractiona cu LCD-ul am folosit biblioteca nokia5110. Alte biblioteci folosite in realizarea proiectului sunt: avr/io.h, stdio.h si util/delay.h.

Am folosit un vector static de structuri ce reprezinta sarpele. In fiecare structura se afla coordonatele acestuia.

Intregul program se gaseste in fisierul main.c al arhivei de mai jos si contine o multitudine de functii:

Jocul contine pe mai multe nivele diferite prin dificultatea data atat de viteza de miscare a sarpelui cat si de power-ups, nivele ce pot si selectate dintr-un meniu. Fiecare moment important din joc este pus in evidenta prin diferite sunete/melodii, dar si diverse jocuri de lumini. In timp real, jucatorul isi poate vedea scorul dar si numarul de vieti ramase (semnalat atat prin leduri cat si prin caractere pe ecranul Lcd-ului).

Power-ups:

Rezultate Obţinute

In final, am obtinut propriul meu joc Snake. ;-)

Concluzii

A fost unul dintre cele mai interesante proiecte de pana acum, pe care am putut sa-l modelez si sa-l personalizez dupa cum am vrut eu. :-)

Download

Arhiva cu implementarea si detalii despre joc:

334ccmarinmariageorgiana.zip

Jurnal

Parcursul proiectului a fost urmatorul:

Hardware:

  • Implementare placa de baza
  • Cumpararea pieselor necesare
  • Montare regulator de tesiune 3.3V
  • Montare butoane
  • Montare buzzer
  • Montare led-uri
  • Montare lcd

Software:

  • Testare butoane si implementare comportament.
  • Testare buzzer si implementare sunete/melodii.
  • Testare leduri si implementare jocuri de lumini.
  • Testare lcd si afisarea unui mesaj de start.
  • Implementarea logicii jocului.

Bibliografie/Resurse