Autorul poate fi contactat la adresa: Login pentru adresa
Voi implementa cunoscutul joc de Connect 4. Jocul se desfasoara pe un board gaurit si gol pe interior pentru a permite introducerea unor jetoane de culori diferite : rosu si galben. Voi simula acest board cu ajutorul unei matrici de leduri in care voi avea doua culori : rosu si verde.
Regulile sunt simple - cel care ajunge sa isi dispuna culoarea neintrerupt cu ajutorul a 4 jetoane pe o linie, coloana sau diagonala castiga. Voi pune la dispozitie utilizatorilor 3 butoane : doua pentru miscarea pe matrice si unul pentru amplasarea jetonului corespunzator fiecarui utilizator. Jocul se va desfasura in randuri astfel ca dupa ce un utilizator amplaseaza un jeton va veni randul celuilalt. Timpul este nelimitat. Mai multe informatii : https://en.wikipedia.org/wiki/Connect_Four
Legarea BCD-ului si a butoanelor se face la PORTA al placutei, culorile becurilor sunt impartite intre PORTB si PORTC, astfel pentru PORTD ramanand comunicarea cu integratul.
Am folosit din biblioteca avr : io.h, interrupt.h si delay.h.
Un overview al amprentelor functiilor se gasesc in : utils.h
Implementarea codului este una foarte simplista : am mai multe functii pentru verificarea sfarsitului rundei (cate una pentru fiecare caz posibil), daca nu, modific matricea, care este una comuna si pentru oponent si pentru mine, in functie de al cui este randul. Se verifica apasarea butoanelor stanga sau dreapta, caz in care modificam doar indexul coloanei pe care ne aflam momentan.
In cazul in care butonul din mijloc este apasat (aferent plasarii unui jeton pe tabla) am adaptat o functie care plaseaza jetoul cu o linie mai jos pana intalneste o casuta deja completata, caz in care se opreste (Mai intai completez matricea, astept 100ms pentru afisare, apoi sterg valoarea si se trece la urmatoarea iteratie).
Proiectul este functional din punct de vedere al conexiunilor dintre componentele de pe placute, software-ul nu are rezultatul dorit, se afiseaza doar culoarea rosie, in loc de alternarea intre rosu si verde intre tururile fiecarui jucator.
A fost o lucrare destul de challenging pentru mine, mai ales lipirea componentelor si frecventa ridicata a greselilor. (foarte migalos lucrul cu placuta auxiliara)
Milestone 1 : am ales tema proiectului
Milestone 2 : am terminat de lipit placuta si de gandit schema tehnica a proiectului
Milestone 3 : finalizarea lipirea placutei auxiliare
Milestone 4 : testare software
Matice de LED-uri : TBA23-11EGWA.html
BCD : cd4028b.pdf
Video proiect : LZbheoXeeh8