Gianina-Mihaela CARP (66907) - SnakeIT
Adresa de contact: gianina.m.carp@gmail.com
Introducere
SnakeIT
jocul snake pe Graphic LCD 84×48 - Nokia
input folosind un joystick (miscarile)
jocul prezinta mai multe nivele de dificultate de pot fi modificate dintr-un comutator
output → difuzor ce va reda diferite sunete in functie de activitatile din joc (ex: game over, la atingerea hranii)
Descriere generală
Hardware Design
Lista de componente(pe langa cele de baza):
Pini utilizati:
1. LCD Nokia5110:PORTB → PB0 - PB4
> PB → Backlight
> Vcc(+) si GND (-)
2. Buzzer: PORTD
> PD0
> GND (-)
3. Joystick: PORTA → PA5 → coordonata Y
> PA6 → coordonata X
> PA4 → buton joystick → utilizat pentru pauza
> Vcc(+) si GND(-)
4. Comutatoare: PORTC → GND(-)
X2:(1)-> PC1 -> Pauza
(2)-> PC0 -> Backlight LCD
X4:
(1)-> PC6 -> Level EASY
(2)-> PC5 -> Level MEDIUM
(3)-> PC4 -> Level HARD
(4)-> PC3 -> Redimensionare margini
Software Design
Am folosit libraria nokia5110 pentru interfatarea cu ecranul LCD.
Mediul de dezvoltare folosit:
Implementare SnakeIT
Pentru a retine snake-ul efectiv si bucati de hrana am folosit structura coord_t ce are doua componente de tip int, x si y.
struct coord_t {
int x;
int y;
}coord_t;
Functii implementate
void ADC_init()
int ADC_get()
int check_food_pos() ⇒ verificare intersectie snake & food
void generate_food() ⇒ generare food
void initSnake() ⇒ initializare snake
int checkSnake() ⇒ verifica daca sarpele s-a lovit de margini sau de el insusi
void clearSnake() ⇒ sterge snake
void showSnake() ⇒ afisare snake pe LCD
void moveSnake(int) ⇒ miscare snake
int checkDirection(int, int) ⇒ verificare corectitudine directie primita
int getDir(int x, int y, int snake_dir) ⇒ trecerea datelor primite de la joystick din analog in digital si returnarea directiei corespunzatoare
void initIO()⇒ initializare porturi ca intrare/iesire
void drawBorder() ⇒ desenare bordura
void checkBacklight() ⇒ verificare si aprindere backlight LCD
void buzzer_morse(int tip_morse) ⇒ generare sunete de la buzzer
void makeSound(int tip_morse) ⇒ generarea unui anumit tip de sunet
int checkDifficulty() ⇒ verificare dificultate aleasa
int checkBorder() ⇒ verificare tip de margine aleasa
void snake_main()
Rezultate Obţinute
Am realizat cu succes atat partea hardware, cat jocul in sine.
Concluzii
Download
Jurnal
Placa de baza
Testare
Final

Bibliografie/Resurse
Resuse Software