Georgiana-Liliana BACLAVA (25527) - Minesweeper

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Jocul este implementat pe LCD. Este single-player. Jocul consta in golirea casutelor prezente pe ecran prin apasarea pe rand a unei casute. O casuta poate fi libera sau poate contine o bomba. In cazul in care casuta aleasa contine o bomba utilizatorul pierde, iar jocul se termina. Altfel, o parte din casutele vecine celei alese(cele care nu contin bombe) se vor goli. Un jucator castiga atunci cand a golit toate casutele afisate initial pe ecranul LCD-ului.

Regula jocului

In cazul in care toate casutele libere au fost golite, utilizatorul castiga, LED-ul verde se va aprinde si un mesaj corespunzator va fi afisat la LCD. Altfel, se va aprinde LED-ul rosu.

Descriere generală

Schema bloc

Hardware Design

Schema electrica - EAGLE

Software Design

Am pornit de la functiile pentru LCD din laboratorul 1: din fisierele lcd.h si lcd.c. Am adaptat codul pentru LCD-ul meu care are 4 linii a cate 20 de caractere fiecare.

Functiile utilizate pentru realizarea jocului sunt urmatoarele:

  • void init_game() - initializeaza jocul
  • void init_table() - initializeaza tabela care retine ce contine fiecare casuta
  • void check_if_is_mine(unsigned char cell, uint8_t pos) - verifica daca casuta curenta contine o bomba sau nu. In caz afirmativ, casuta va fi descoperita, ledul rosu se va aprinde, iar mesajul “You've lost the game” va fi afisat pe display. In caz contrar, o casuta libera(L) va fi descoperita, iar daca toate casutele libere au fost descoperite, ledul verde se va aprinde, iar mesajul “You've won the game” va fi afisat pe display.

Rezultate Obţinute

Concluzii

Am lucrat cu drag la acest proiect. Mi-a placut mai mult partea de hardware, a fost mai fun, dar si scrierea codului a fost interesanta.

Download

Bibliografie/Resurse

pm/prj2016/mandrei/54673.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