Table of Contents

Andrei CRIVIDENCO (66959) - Snake++

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Proiectul reprezinta implementarea jocului Snake pe o placuta cu LCD.

Ca orice joc, scopul proiectului este pentru amuzament. De asemenea, poate readuce nostalgia jocurilor pe un LCD monocrom.

Ideea de la care am pornit este clasicul joc Snake, in care un “sarpe” mananca punctulete si creste.

Pentru altii proiectul este o sursa de amuzament si nostalgie, datorita LCD-ului monocrom de Nokia 3310. Pentru mine este o sursa de experienta in lucrul cu un microprocesor si in construirea unei placute.

Descriere generală

Directia sarpelui se modifica din butoane. Microprocesorul ATMega 324 afiseaza starea jocului pe ecranul LCD si reda sunete pe difuzor la anumite evenimente (mancare, endgame etc.)

Hardware Design

Pe langa componentele de baza (Microprocesor, placuta de baza, rezistente etc.), proiectul va include

Schema electrica :

Download : ppmm.sch

Software Design

Mediu de dezvoltare :

Biblioteca 3rd party pentru LCD : http://www.quantumtorque.com/content/view/32/37/

Alte include-uri:

Implementarea nu urmareste un algoritm special; Sarpele este un vector de puncte rotit constant

Initial se verifica coliziunea cu peretii (daca da, se incheie jocul), apoi se verifica daca mancarea a fost atinsa (daca da, se genereaza alta), apoi se verifica atingerea bonusului (care se genereaza separat cu o anumita frecventa). Se foloseste rand() pentru pozitia mancarii si se verifica cu vectorul de puncte al sarpelui inainte de a fi confirmata.

Seedul pentru random este luat de la inputul jucatorului (in functie de pozitia XY a sarpelui), astfel incat doar prima mancare va fi mereu in acelasi loc, iar restul vor fi in locuri diferite la fiecare replay.

Sunetele sunt redate prin set/unset repetat pe pinul difuzorului, prin intermediul tranzistorului, cu diverse delay-uri.

Desenele sunt afisate prin setari individuale ale pixelilor in lcd.c .

Rezultate Obţinute

Clasicul joculet snake cu mici bonusuri/obstacole aparute pe harta si diverse sunete. De asemenea, meniu de configurare si poveste :)

Concluzii

Experienta a fost una destul de placuta. Am avut ocazia sa achizitionez un Nokia 3310 pe care l-am facut bucati si sa aflu cum functionau telefoanele pe vremuri. In plus, a fost destul de rewarding sa fac displayul sa mearga dupa prima incercare de lipire (avand in vedere distanta <1mm dintre lamelele de conexiune).

Inca un aspect pozitiv este faptul ca am reusit sa realizez ceva practic, sa imbin software-ul cu hardwareul.

Download

snake_crividenco_andrei_333cc.zip

Jurnal

Frankensetin w/o anything Frankenstein w/o software Frankenstein with software

–Beta : Implementarea de baza– –Final : Cu meniuri, splashscreenuri etc.–

Bibliografie/Resurse

Resurse Software

http://www.quantumtorque.com/content/view/32/37/

Resurse Hardware

https://www.youtube.com/watch?v=Hdth4pEyDU4

http://libesz.digitaltrip.hu/wp-content/uploads/3310_pinout.jpg

http://www.atmel.com/Images/Atmel-42743-ATmega324P_Datasheet.pdf