Jocul X si O, cunoscut si sub numele de Tic Tac Toe, este unul dintre cele mai intuitive jocuri. Acesta implica doi jucatori, fiecare cu un marcaj reprezentativ (X, respectiv O). Mutarile sunt alternante, castigatorul fiind persoana care reuseste sa construiasca o secventa de trei marcaje consecutive cel mai rapid. Daca nici un jucator nu reuseste sa construiasca o secventa de trei, apare o situatie de remiza.
Jocul implementat aici este o adaptare a clasicului joc X si O. Fiecare jucator va fi reprezentat nu de un marcaj(X sau O), ci de o culoare. In cazul acesta, jucatorul va concura impotriva calculatorului, nu impotriva altui jucator.
Un jucator se poate misca pe linii sau coloane folosindu-se de butoanele Sus, Jos, Stanga, Dreapta, si va putea seta pozitia dorita cu ajutorul butonului Centru. Mutarea intre casute va fi vizibila, led-ul respectiv fiind aprins intr-o culoare neutra (de exemplu alb).
Lista compponente:
Schema:
PA, PB si PC sunt porturile microcontrollerului ATMEGA16. Butoanele de asemenea sunt legate la pinii PB1, PB2, PB3, PB4, PB5 ai microcontrollerului.
Programul urmareste sa implementeze un joc de X si O, in care mutarile adversarului sunt realizate de microcontroller. Mediul de dezvolatare este AVRStudio 4.0. Pentru desenarea schemei electrice s-a folosit Eagle 5.7.0.
Pentru a genera mutarile, microcontroller-ul foloseste algoritmul minimax.
Se verifica apasarea unui buton, se preia mutarea utilizatorului si apoi se calculeaza mutarea microcontroller-ului. Dupa fiecare mutare, se verifica daca a castigat cineva sau daca este remiza (adica toate cele noua casute sunt completate).
Pentru a determina care casuta este selectata, se foloseste urmatorul algoritm:
Aprinderea becurilor se face prin setarea pinului de linie pe output high si a pinului de coloana pe output low(ground). Pentru a se aprinde mai multe becuri in acelasi timp, se selecteaza liniile separat, dar la un interval de timp atat de mic, incat toate becurile par aprinse.
Dupa asezarea componentelor si lipirea acestora conform schemei, a rezultat urmatoarea placa:
Am testat cu multimetrul ca toate legaturile sunt functionale si ca se aprind toate led-urile. Urmatorul pas este lipirea magistralei si programarea placutei.
In final nu am reusit sa mai parcurg urmatorii pasi:
Desi nu am dus pana la capat proiectul (lipsa de timp), consider ca tema propusa de mine este una realizabila si foarte interesanta.