Autorul poate fi contactat la adresa: Login pentru adresa
X si 0 este unul dintre cele mai simple si, in acelasi timp, unul din cele mai amuzante jocuri. In general jocul are ca suport fizic hartia, iar singura motivatie care apare pentru a juca acest joc este plictisul care apare in timpul unui curs.
Regurile jocului sunt simple, intr-o tabela de 3×3 fiecare din cei doi jucatori vor pune pe rand X, respectiv 0 pentru a completa o linie, o coloana sau o diagonala doar cu simboluri apartinand lui. Jocul se termina atunci cand unul din jucatori indeplineste conditiile mentionate anterior(atunci jucatorul castiga) sau cand toate casutele sunt pline(jocul se termina prin remiza).
Jocul va putea fi jucat in doi jucatori sau importiva unui AI(mai mult sau mai putin inteligent).
Pentru a incepe jocul se va apasa pe un buton pentru a selecta modul de joc: contra alt jucator sau contra AI.
Pentru a selecta casuta in care va pune X, respectiv 0, fiecare jucator folosi cate un set de 5 butoane(4 pentru pozitionare si unul pentru selecatare). La terminarea jocului acesta va ajunge in stadiul in care se selecteaza modul de joc.
Schema bloc se compune din 3 module:
Bill of materials
Cod | Denuimre | Cantitate | Pret total | Distribuitor |
---|---|---|---|---|
0104110000010865 | Buton 6x6x6 | 10 | 20lei | Optimus Digital |
0104110000007407 | Rezistor 0.25W 2.2KΩ | 10 | 1leu | Optimus Digital |
0104110000007476 | Rezistor 0.25W 1KΩ | 10 | 1leu | Optimus Digital |
0104110000010032 | Rezistor 0.25W 10KΩ | 10 | 1leu | Optimus Digital |
0104110000003874 | Set 10 fire colorate mama-mama | 4 | 38lei | Optimus Digital |
0104110000008190 | Modul LCD de 1.44'' (128×128 px) | 1 | 30lei | Optimus Digital |
Pentru dezvoltarea codului C si urcarea lui pe placuta, am folosit Programers Notepad, biblioteca WinAVR si Bootloaderul din laboratoare, iar pentru comunicarea intre diplay si placuta an folosit SPI.
Ecran de start
In ecranul de start daca se apasa un buton de pe controller-ul pentru P1 incepe un joc contra AI, daca se apasa un buton de pe controller-ul pentru P2 incepe un joc contra altui jucator.
In-game screen
Patratelul rosu corespunde lui P1, cel verde lui P2, iar cel albastru inchis - care nu se vede foarte bine :)) - corespunde cursorului de selectie.
P1 Wins
Ecranul care apara cand castiga P1
P2 Wins
Ecranul care apare cand castiga P2
Draw
Ecranul care apare in caz de egalitate
Dupa terminarea unui joc de X si 0, acesta se reinitializeaza dupa cateva secunde
Jocul este complet jucabil, fara bug-uri.
Se poate juca atat contra unui AI cat si contra altui jucator.
Jocul se reinitializeara dupa terminarea unui meci.
In ceea ce priveste partea de hardware, un challenge a fost interfatarea display-ului cu placuta si folosirea bibliotecii pentru comunicare.
In ceea ce priveste partea de software, un challenge a fost programarea AI-ului care sa fie cat de cat inteligent - AI-ul este greedy :)) .
Jocul ofera o experienta placuta si poate fi jucat fara probleme.
Codul sursa al proiectului:
damianpetrisoralin335cb_proiect.zip