Mocanu Florian 333CA inseder_15@yahoo.com
Proiectul de fata urmareste implementarea initiala a jocului Snake pe telefonul Nokia 3310.
Am incercat sa respect regulile jocului de baza, astfel scopul este de a hrani un sarpe si a acumula puncte. Jucatorul trebuie sa ghideze sarpele spre elementele ce constituie hrana (vom considera ca acestea sunt mere). Acestea apar random pe ecran si reprezinta modalitatea de “ingrasare”, mai exact de marire a lungimii sarpelui.
Presupunem ca sarpele este format din segmente(patrate). Cu fiecare mar inghitit se adauga inca un patrat la lungimea sarpelui. Astfel dificultatea jocului creste deoarece sarpele devine greu de manevrat si jucatorul trebuie sa aiba grija sa nu intersecteze capul acestuia cu restul corpului.
Daca se intampla acest lucru, jocul se termina si se afiseaza numarul de puncte castigate. Altfel bucla merge la infinit, putand fi ocupat tot ecranul de catre corpul sarpelui.
Nu exista pereti pe margine deci sarpele poate parcurge ecranul in totalitate iar cand ajunge intr-unul din capete (stanga-dreapta, sus-jos) trece in partea opusa.
Singura modalitate de castig este ocuparea totala a ecranului, lucru foarte greu de obtinut.
De mentionat ca elementele ce apar random au totusi o restrictie de pozitionare: din zona ecranului se scade numarul de patrate ocupate de sarpe in momentul genararii lor.
schema si PCB-ul placii de baza
Schema initiala in Preoteus la care ar fi trebuit adaugate regulatoare liniare de tensiune sau divizoare de tensiune (lucru pe care l-am facut in practica dar nu era nevoie aici). De asemenea am luat initial 6 butoane pentru ca intentionam sa folosesc 4 butoane pentru miscarea sarpelui, unul pentru selectare (OK) si unul pentru ON/OFF. Pe placa am folosit doar cele 4 pentru miscare deoarece nu am implementat meniu si jocul porneste automat deci celelalte 2 erau in plus.
Starea lcd-ului la un moment dat o vom retine intr-un bitboard de 48*84.
Pozitia sarpel-ului este retinuta in memorie prin 2 vectori de x , y care stabilesc pozitiile in bitboard.
Afisajul :
In primul pas se va afisa tot bitboard-ul deorece bombele sunt generate random.
In urmatorii pasi urmarim algoritmul :