Sunteți pe pagina 1din 3

Laborator 3 - Arhitecturi paralele Lucrul cu thread-uri

Bariere

Clasa Barrier permite ca un numar de fire de executie sa conlucreze in vederea realizarii unui anumit task, care presupune atingerea unui numar de faze. Fiecare participant executa pana ajunge la secventa de code ce defineste o bariera. Acasta reprezinta sfarsitul unei faze. Cand un participant atinge o bariera acesta se blocheaza pana restul vor ajunge la bariera. Cand toti participantii ajung la bariera, se poate invoca o anumita actiune. Pentru un exemplu de implementare consultati proiectul AplicatieTestBarrier.

Aplicatii

2.1 Aplicatie WorkerThread


Aplicatia are ca scop implementarea unui fir de executie capabil sa realizeze un task si in acelasi timp sa faca update in interfata utilizator. Task-ul va fi preluat de un obiect care va face si update in interfata utilizator. Se va folosi clasa ManualResetEvent.

2.2 Aplicatie laborator - Reaction


Implementati o aplicatie de tip joc care va testa viteza de reactie a utilizatorului in tastarea diferitelor caractere. Un caracter se va deplasa pe ecran de sus in jos, interval in care utilizatorul va tasta caracterul afisat, iar acesta va disparea fiind marcat. Aplicatia va respecta cel putin urmatoarele cerinte: 1) Interfata utilizator va contine: a) Buton start/pause b) Buton Reset c) Afisare scor (numar caractere nimerite) d) Panou deplasare caracter
1

2) Se va implementa o modalitate de reutilizare a obiectelor folosite de aplicatie: de exemplu, se poate folosi un pool de caractere. 3) Implemenati o solutie de modificare a dificultatii jocului

2.3 Aplicatie tema Reaction


Implementati o aplicatie de tip joc care sa testeze viteza de reactie a unui utilizator. Aplicatia va respecta cel putin urmatoarele cerinte: 1. Logica jocului: Aplicatia va afisa diferite imagini (icoane trebuie sa incapa minim 1520 iconite (daca acestea ar fi dispusa una in prelungirea celeilalte) pe panoul de joc, dispunearea acestora va fi random atat ca pozitie cat si ca orientare), la diferite intervale de timp, iar utilizatorul va avea un anumit timp la dispozitie sa bifeze acele imagini folosind tastature sau mouse-ul. De ex. La inceputul jocului apare o icoana apoi inca una si tot asa, pana la un anumit numar cand va fi GAMEOVER. Cand un user va marca o icoana (a marca inseamna ca imaginea dispare, nu pui X pe ea si ramane acolo), aceasta va disparea si va modifica scorul utilizatorului. Pe masura ce progreseaza pe fundal se vor afisa diferite mesaje (se va desena un text pe background folosind diferite orientari si font): Start la inceputul jocului, Lent, Mai Bine, Rapid, etc. in functie de viteza acestuia de reactie, sau alte mesaje. 2. Resursele jocului (puteti folosi toti aceleasi resurse): Se va folosi un numar de minim 100 de imagini (icoane). La utilizarea in game se poate merge si pe o incarcare de imagini la nevoie, adica se incarca initial 20-30, apoi in timpul jocului se pot schimba imaginiile cu altele de pe disc folosind un backgroundworker. 3. Se vor folosi sunete care vor fi ciclate in timul jocului. 4. Jocul va contine urmatoarele ferestre(forms): a. Splash-screen. Va afisa o imagine (sau altceva, poate animatie) si modalitate prin care se va afisa procentul (folosind un text sau o bara de incarcare) din resurse incarcate. Resursele sunt reprezentate de imagini, sunete sau alte elemente care le considerati. Se va folosi un BackgroundWorker sau un thread sau orice modalitate accesibila de incarcare asincrona a resurselor. Se poate intampla ca incarcarea propriu-zisa sa fie foarte scurte in acest caz se pot introduce intarzieri (gen Sleep). b. Mode-screen. In aceasta fereastra utilizatorul va selecta modul de joc. Se vor folosi minim 2 moduri, un mod este cand imaginile apar la anumite intervale iar utilizatorul trebuie sa dea click pe acestea pentru a le marcaIn al doilea mod, unele imagini vor avea si litere pe ele, iar utilizatorul poate opta sa apese de la tastatura litera care apare pe imagine si aceasta va fi bifata sau sa execute click. Se

pot folosi si alte moduri atata timp cat presupun interactiune din partea utilizatorului. c. Game-screen. Fereastra de joc. Va contine cel putin urmatoarele elemente grafice: i. Buton Start/Pause (nu neaparat butoane pot fi si imagini) ii. Buton Exit, pentru intoarcere la fereastra de moduri iii. Buton sunet Mute/Unmute iv. Display scor: de ex. Label v. Panel cu desfasurearea jocului (imaginiile care apar) d. GameOver-dialog. Fereastra care apare la finalul jocului. Se poate afisa scorul, buton back la selectare moduri. 5. Se va implementa o modalitate de reutilizare a obiectelor folosite de aplicatie: de exemplu, se poate folosi un pool de imagini, sunete, etc.. 6. Implemenati o solutie de modificare a dificultatii jocului 7. Tema: Dimensiune maxima aplicatie 7MB + atentie la spatiul ocupat in memorie (RAM)

Tema va fi formata dintr-o arhiva de forma nume_prenume, de ex. popescu_ion, va contine codul sursa (proiectul visual c# .net framework 4.0). Toate arhivele vor fi stranse de un responsabil, arhivate cu numele grupa, de ex. e214a, si trimise la adresa arhitparalelelab@gmail.com (se poate folosi, de ex., transfer.ro daca
dimensiunea este prea mare). Termenul limita este 9.01.2013 10:00 AM.

S-ar putea să vă placă și