Extras din proiect
Realizarea proiectului a fost posibila ajutorul programului Microsoft Visual Studio, si realizeaza un joc de culori, numit „Cuiele”. Jocul poate fi jucat de doua persoane si consta in deducerea unei combinatii de patru culori, combinatie alcatuita de catre celalalt jucator participant.
Baza acestui program este comunicarea pe porturile seriale, fiind alcatuit din doua module. Primul modul se refera la jucatorul A, care trebuie sa determine culorile alese de jucatorul B. Jucatorul A are un numar limita de încercari, si anume 10. Dupa fiecare mutare asteapta ca jucatorul B sa-i comunice cate culori a nimerit exact pe pozitia buna, si cate culori a nimerit pe pozitii gresite.
Jocul se termina in momentul in care fie s-au epuizat fara succes cele 10 încercari, fie s-au identificat toate culorile exact pe pozitia buna.
Modulul al doilea este realizat pentru jucatorul B, care stabileste înainte de pornirea jocului care sunt culorile de pe cele 4 pozitii. Dupa fiecare încercare a jucatorului A, jucatorul B ii transmite acestuia indicii despre culorile nimerite: numarul de culori nimerite exact pe pozitia buna si numarul celor nimerite, dar pe alte pozitii.
Prezentarea modulelor si a functiilor lor
Modulul jucatorului A foloseste un List Control de forma unui tabel cu 10 linii (numarul incercarilor permise) si 4 coloane (numarul de culori folosite), 4 combo-box-uri cu ajutorul carora jucatorul poate alege combinatia de culori dorita, si 3 butoane.Primul buton, numit “Deschide ” foloseste la deschiderea portului serial, acest lucru realizandu-se prin functia atasata acestui buton. Al doilea buton se numeste “Adauga” si are de asemenea o functie de raspuns atasata butonului.
Al treilea buton se numeste “Reguli” si prin apasarea lui, jucatorul poate citi setul de reguli corespunzator jocului.
Cu ajutorul acestor controale, in modulul jucatorului A se efectueaza urmatoarele operatii:
- in functia OnInitDialog()se initializeaza cele 4 combo-box-uri cu gama de culori pe care jucatorul A le are la dispozitie pentru a determina combinatia corecta de culori;
- cu ajutorul functiei OnBnClickedDeschide(),atasata butonului “Deschide”, se deschide portul serial, se configureaza, dupa care se stabilesc timpii de “time-out”; in cazul in care nu se efectueaza una din aceste operatiile, apar mesaje corespunzatoare erorii ;
- in functia OnBnClickedAdauga(),atasata butonului cu acelasi nume, se seteaza in List Control culorile alese de jucatorul A; fiecare culoare va fi codificata printr-un numar de la 1 la 8 (pentru ca sunt 8 culori) , si aceasta combinatie de cifre va fi memorata in variabila sir ; valoarea memorata in aceasta variabila este transmisa serial (bit cu bit) celuilalt jucator, si se asteapta validarea incercarii, tot prin transmisie seriala;in cazul in care s-au epuizat cele 10 incercari,se transmite serial codul (“QQQQ”) ,care semnifica sfarsitul jocului.
- in functia OnBnClickedReguli() , sunt impelmentate regulile jocului, acestea aparand la apasarea butonului sub forma unui mesaj ;jucatorul A este astfel informat asupra numarului de incercari permise, precum si asupra modului de interpretare a indiciilor.
Interfata modulului jucatorului A ii da posibilitatea acestuia sa aleaga o combinatie de culori prin intermediul a 4 combo-box-uri. Inainte de a trimite varianta aleasa de el, trebuie sa deschida portul serial. Aceasta se realizeaza prin functia atasata butonului “Deschide”.Daca portul a fost deschis, apare un mesaj care informeaza jucatorul de acest lucru. In caz contrar, apare un mesaj care avertizeaza jucatorul in legatura cu eroarea de deschidere sau configurare a portului.
Dupa deschiderea portului, jucatorul poate alege combinatiile de culori pe care le trimite pentru validare celuilalt jucator. Prin intermediul unei liste, jucatorul A primeste un cod alcatuit din doua cifre .Cifrele din acest cod se memoreaza in lista si reprezinta indiciile de care are nevoie pentru a determina combinatia corecta: cate culori a nimerit pe pozitia buna, si cate pe alte pozitii. In cazul in care codul este egal cu “40”, aceasta inseamna ca toate cele patru culori au fost gasite pe pozitiile bune si jucatorul A a castigat.
Preview document
Conținut arhivă zip
- Proiect Cuiele.doc