Autorul poate fi contactat la adresa: Login pentru adresa
De obicei incepe jucatorul care reprezinta “X” (in cadrul proiectului meu acesta fiind Rosu). Scopul jocului este ca un jucator sa obtina o linie, coloana sau diagonala.
Pentru selectarea modului de joc se apasa unul din cele 3 butoane: stanga( mod normal, player vs player), sus (modul player vs bot mediocru), dreapta (modul player vs bot inteligent). Dupa alegerea modului de joc, se apasa butonul central si jocul incepe.Un player poate sa se deplaseze in 4 directii(sus,jos,dreapta,stanga).
Selectia modului de joc
Pentru a selecta modul de joc: player vs player(1), player vs bot bediocru(2), player vs bot inteligent(3), folosesc 3 din cele 5 butoane:
Pentru “1”: buton stanga (ledul corespunzator de pe placa de baza) Pentru “2”: buton sus (ledul din dreapta butoanelor in culoarea rosie) Pentru “3”: buton dreapta (ledul din dreapta butoanelor in culoarea verde) Pentru a porni jocul in modul dorit se apasa butonul central.
1. Modul de joc player vs player
Jocul porneste cu jucatorul 1 pentru selectie. Se va aprinde un led liber de pe matricea 3 x 3, urmand sa fie mutat in punctul dorit de jucator. Cand se apasa butonul din centru, ledul va ramane in acea pozitie. Matricea initiala are toate elementele egale cu 0. Cand jucatorul 1 a selectat un element, acel element din matrice va deveni 1. ( 0 reprezinta ledurile libere, 1 reprezinta ledurile jucatorului 1, 2 ledurile jucatorului 2). Acum jucatorul 2 va selecta si elemetul corespunzator ledului din matrice va deveni 2. Cu functia “check_win” verificam sa vedem daca avem acelasi elemente pe linie/coloana/diagonala. Daca avem, jocul se termina. In caz contrar, va fi egalitate.
2. Modul de joc player vs bot mediocru
Jocul porneste cu jucatorul 1 pentru selectie. Dupa ce acesta selecteaza ca si in modul “1”, bot-ul isi va alege mutarile aleator. Am folosit functia rand(). Pentru a nu avea aceleasi valori la fiecare pornire a jocului am folosit functia srand(), careia i-am atribuit ca parametru un intreg pe care il incrementez in “while(1)” corespunzator selectiei modului de joc. Astfel, la fiecare rulare a jocului voi avea un numar diferit. Am optat pentru acesata metoda deoarece nu dispuneam de functia “time” pe microcontroller.
3. Modul de joc player vs bot interligent
In acest mod, jocul porneste cu jucatorul 1 la selectie. Botul va face urmatoarea mutare.
Daca exista pericol din partea adversarului, vom muta astfel incat sa nu fie castigatoare mutarea acestuia. Daca botul are mutare castigatoare si exista pericol din partea adversarului, vom face mutarea noastra. Daca adversarul nu are mutare castigatoare, vom determina numarul maxim de leduri ce ne pot duce la succes pe linie/coloana/diagonala. (leduri deja aprinse de bot ( de exemplu “X”)). Daca numarul ledurilor aprinse este acelasi, vom muta unde sunt mai putine leduri neaprinse. (acolo unde sunt mai putine leduri aprinse din partea adversarului).
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.