Jocuri in retea, aplicatie client-server
Sa se realizeze o aplicatie grafica sub Linux care sa implementeze un joc multi-player prin retea, la libera alegere: un joc de carti (rent, whist, tarnim), sau jocul de sah, remmy, sau scrabble.
Se va folosi comunicarea inter-procese prin intermediul procesului server, pentru comunicatiile intre procesele client reprezentand jucatorii.
Procesul server va avea ca sarcina si gestiunea starii jocului si verificarea corectitudinii mutarilor solicitate de jucatori.
Comunicatiile cu serverul se vor realiza in 2 variante: folosind fisiere fifo daca clientul si serverul ruleaza pe acelasi sistem, respectiv
socket-uri pentru comunicatii prin retea daca clientul si serverul ruleaza pe sisteme diferite.
In plus, se va permite jucarea concomitenta a mai multor jocuri (pentru aceasta, o posibila solutie ar fi: programul server principal va crea
procese server fii, fiecare dintre acestia avand ca sarcina gestiunea unui anumit joc).
Programul client va dispune de interfata grafica, si de asemenea programul server va fi prevazut cu un modul grafic de administrare,
pentru configurarea parametrilor necesari si pentru vizualizarea, la comanda, a starii jocurilor aflate in desfasurare la un moment dat.
Precizari suplimentare:
- fiecare tip de joc este caracterizat printr-un numar de jucatori care pot participa la un acelasi joc. Acest numar poate fi
fie un numar fix (e.g. 2 jucatori - la sah), fie un numar variabil, dar limitat (e.g. 2, 3 sau 4 - la remmy);
- programul client se va conecta la serverul de joc si va fi responsabil cu efectuarea mutarilor jucatorului (utilizatorului care a lansat in executie
acel client). Vor fi doua optiuni: joc contra calculatorului, sau joc contra altui utilizator (in acest ultim caz se va astepta, daca este cazul, pina cand se va conecta un nou utilizator care vrea sa joace contra unui jucator uman);
- programul server va sta in asteptare, asteptand cererile clientilor corespunzatori jucatorilor care participa la acel joc;
- o data stabilita conexiunea la server si tipul de jucatori (”om contra om” sau “om contra calculator”), procesul server va trimite inapoi la client
starea jocului la acel moment si va acorda fiecarui jucator dreptul de a juca, rand pe rand (in cazul jocului de tip “om contra calculator”,
procesul server va efectua mutarile jucatorului “calculator”). Se vor detecta mutarile incorecte de catre server. Comunicatiile se vor face intre
server si clienti, nu direct intre clienti.
Echipa: 2 studenti (sau 3 studenti, in cazul in care se doreste si implementarea unui modul de IA responsabil cu o strategie performanta de castig a calculatorului pentru jocurile de tip “om contra calculator”).
Bonus: punctaj maxim la componenta de testare practica din cadrul notei la disciplina “Sisteme de Operare”.
Proiect propus de: domnul profesor lector, doctor, Cristian Traian Vidrascu.
1 Comment so far
Leave a reply
de ce pe linux ? windows nu e sistem de operare ?:P