X si 0

Introducere

Mi-am propus sa implementez un joc bine cunoscut si anume: X si 0. Un lucru bine stiut este faptul ca se joaca la dublu( necesita doi jucatori umani). Pentru a castiga este nevoie ca simbolul unuia dintre jucatori sa existe pe o linie/coloana/diagonala. Se va juca pe o matrice de 5×5 pentru a complica jocul clasic de X si 0 cu matrice de 3×3.

Descriere generală

Schema bloc este urmatoarea:

Pentru alegerea pozitiei am 4 butoane pe care le folosesc la selectia pozitiei din matricea de 5×5 si inca un butoan ce au ca semnificatie simbolul “x” respectiv “0”.

In functie de evolutia jocului ce va putea fi urmarita pe LCD, in caz de castig se va afisa urmatoarele mesaje: “Jucatorul X a castigat”, “Jucatorul 0 a castigat”, “Remiza”.

Hardware Design

Componente:

  • Ecran LCD Nokia 3310
  • Placa de baza
  • 5 butoane
  • 5 * rezistenta 3k3 (oranj oranj rosu auriu)
  • 5 * rezistenta 1k6 (maro albastru rosu auriu)
  • condensator 4.7 uF
  • 2 * dioda 1N4148

Scheme folosite:

Pentru cuplarea LCD-ului :

Software Design

Partea de software a acestui proiect va fi realizata in limbajul C folosind WinAvr.

Jocul propriu zis va fi construit dupa urmatoarii pasi:

Jocul va fi pastrat in memoria microcontrollerului. Pentru resetarea jocului se va apasa pe un buton ce este legat de alimentare.Primul jucator va fi cel care si-a stabilit drept simbol “x”.

Consideram ca avem doi jucatori:

  • jucator1-simbol folosit x
  • jucator2-simbol folosit 0

Astfel jucator1,apasa butonul cu simbolul x(cel din mijloc).Apoi merge in “matricea”de butoane si apasa butoanele Stanga Dreapta Sus Jos-corespunzator pozitiei din matrice afisata pe LCD ce o doreste.Dupa ce a ales pozitia,este randul jucatorului 2.Simbolul x este dezactivat atunci cand jucator2 apasa butonul pentru 0.Jucator2 alege pozitia unde doreste sa puna simbolul 0.Jocul se termina cand unul din cei doi jucatori are o linie/coloana/diagonala completata cu simbolul lui sau atunci cand matricea este plina si se considera remiza.

Pentru comunicatia cu LCD-ul, voi folosi urmatoarele functii (principale si pentru programul de x si 0): void lcd_init(void);

void lcd_clear(void);

void lcd_clear_area(unsigned char line, unsigned char startX, unsigned char endX);

void lcd_clear_line(unsigned char line);

void lcd_goto_xy(unsigned char x, unsigned char y);

void lcd_chr(char chr);

Atasez si o arhiva ce are mai multe detalii: comunicare-lcd-functii.zip

Concluzii

Voi publica aceste concluzii dupa ce voi termina de implementat proiectul.

Bibliografie/Resurse

pm/prj2011/rtataroiu/xsi0.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