This is an old revision of the document!
Prezentarea pe scurt: Acest proiect doreste sa implementeze un joc de sah
Jucatorii pot naviga cu butoanele “←”, “↑”, “→”, “↓”, care muta cursorul pe tabla. Cursorul fiecarui jucator nu poate fi mutat decat atunci cand este tura acelui jucator.
Pentru a executa o mutare trebuie mutat cursorul pe una din piese, apasat (select), mutat cursorul pe un spatiu valid, si apasat (select) din nou.
In cazul in care este apasat (select) pe altceva decat un spatiu valid, mutarea se anuleaza si trebuie (select)ata din nou o piesa. Jucatorii pot, odata pe tura, selecta “TIE” pentru a oferi o remiza. Asta ofera control celuilalt jucator, care poate accepta apasand (select) sau refuza apasand orice altceva.
Fiecare jucator are un timp fix pentru a realiza mutarile. In cazul in care nu se incadreaza in timp, jocul va executa o mutare la intamplare.
Un led este aprins de partea jucatorului activ pentru a indica a cui tura este.
Jucatorii pot (select)a “CONCEDE” pentru a renunta si a oferi victoria oponentului.
In momentul in care un joc se incheie, jucatorul a carui led este aprins trebuie sa apese oricare buton pentru a porni un nou joc.
Lista componentelor:
Pinul 4 alimenteaza LED-ul jucatorului 1. Pinul 5 alimenteaza LED-ul jucatorului 2.
Pinul 2 alimenteaza butoanele jucatorului 1. Pinul 3 alimenteaza butoanele jucatorului 2.
Ambele circuite sunt conectate la pinul A2, de pe care se citeste tensiunea aferenta fiecarui buton. Fiecare din butoane scurtcircuiteaza un numar de rezistente pentru a modifica tensiunea de pe A2.
Daca sunt apasate mai multe butoane deodata, butonul cel mai la stanga (din perspectiva jucatorului activ) are prioritate, deoarece sunt scurt-circuitate toate rezistentele de la dreapta butonului.
Pinii 10 si 11 transmit date LCD-ului. 12 este clock-ul.
Pinul GND al LCD-ului este conectat la GND-ul de pe Arduino. Pinul VCC al LCD-ului este conectat la 5V.
Pinii BLA si BLK controleaza luminozitatea ecranului si sunt conectati la 3.3V si GND, respectiv.
Codul (orientativ) de culoare pentru cabluri este:
Mediul de dezvoltare este IDE-ul Arduino.
Datele care trebuiesc afisate pe ecran sunt reprezentate printr-un sir de 128×64 biti.
Tabla de sah este de dimensiune 64×64, fiecare patrat fiind 8×8. Programul va avea o matrice de 8×8 char pe care o va folosi pentru a calcula starile jocului.
Bitii de pe ecran vor fi setati prin aplicarea unor masti hardcodate care reprezinta fiecare element de UI.
Fiecare jucator va avea un cursor reprezentat ca char, stocand o pozitie pe tabla de joc.
Apasarea de butoane va genera intreruperi pentru input.