RICOCHET

DESCRIERE GENERALA

Jucatorul are pe ecran un teren de tip grid ce contine obstacole si un pion plasat in interior. El va trebui, cu ajutorul butoanelor de directie, sa parcurga fiecare celula a gridului, putandu-se deplasa numai dupa urmatorul algoritm: la fiecare deplasare intr-o directie, pionul se va misca automat in acea directie pana la intalnirea unui perete delimitator, obstacol sau propria urma. La parcurgerea intregului grid, se trece la nivelul urmator, cu o noua dispunere a terenului.

IMPLEMENTARE HARDWARE

Placuta de extensie

Conexiunea cu placuta initiala

LCD Nokia 3310

Pentru conectarea placutei de baza cu LCD-ul Nokia 3310 s-au folosit:

  • 2 diode 1N4148
  • 1 dioda Zener 3v3 (sa nu se arda ecranul daca nu se limiteaza curentul bine)
  • 5 rezistente de 1k8
  • 5 rezistente de 3k3
  • 1 condensator 10uF
  • 6 butoane: LEFT, RIGHT, DOWN, UP, RESET, PAUSE
  • pini si fire de legatura

LCD-ul Nokia 3310 functioneaza la o tensiune de 2.7 - 3.3V; de aceea am utilizat divizoare de tensiune pentru pinii SCK (clock), SDIN (data), D/C (data/cmd), SCE (enable), RES (reset). Pinul GND se conecteaza la GND de pe placuta, iar pinul VOUT se conecteaza la condensatorul de 10uF (conectat la masa). S-a protejat ecranul printr-o dioda Zener de 3V3.

Ecranul conectat cu atmega16:

  • SCK = PC7
  • SDIN = PC6
  • D/C = PC5
  • SCE = PC4
  • RES = PC3

Butoanele conectate cu atmega16:

  • LEFT = PA5
  • DOWN = PA4
  • UP = PA3
  • RIGHT = PA2
  • RESET = PA1
  • PAUSE = PA0

Schema:

IMPLEMENTARE SOFTWARE

Implementat in C.

Mediul de dezvoltare utilizat: Notepad++.

Gridul de joc contine 25 de celule avand 3 stari: goala, marcata (perete sau propria urma) si activa (celula jucatorului). Pentru memorarea lor se foloseste o matrice de 5×5. De fiecare data cand se deseneaza o celula, se consulta starea pentru a completa o matrice-bloc de 8×8 pixeli cu patternul corespunzator acesteia.

Cu ajutorul butoanelor, jucatorul se poate deplasa in interiorul gridului in aceeasi directie pana la intalnirea unui obstacol. In urma lui, celulele vor fi marcate si vor deveni obstacole. Pentru aceasta, la fiecare apasare de buton se calculeaza si valideaza pozitia in grid la care se va face mutarea, actualizand starile pentru celula veche si cea noua. Daca nu mai are mutari posibile, jucatorul poate apasa pe butonul de reset si va putea relua nivelul.

Cand se constata marcarea tuturor celulelor se afiseaza mesajul “Nice!” si se incarca nivelul urmator. Sunt 6 niveluri implementate. Programul se poate scala la orice numar de niveluri si cu oricate celule de grid.

Am folosit interfata pcd8544.h de lucru cu ecranul Nokia cu implementarea pcd8544.c (Tony Myatt - 2007).

REZULTATE OBTINUTE

Programul este functional.

voinea_anemona_331ca_ricochet.zip

CONCLUZII

Am intampinat multe dificultati in testare pe ecran Nokia. Nu am gasit ecran in timp util si am dezvoltat softul folosind ecranul unei alt proiect. Dar rezultatul final este satisfacator avand in vedere conditiile.

BIBLIOGRAFIE

pm/prj2011/dloghin/ricochet.txt · Last modified: 2021/04/14 17:07 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0