Sunteți pe pagina 1din 9

Rețele de calculatoare Listă de probleme

Categoria I – nota max 10

Evadarea din labirint


Se va concepe și realiza o pereche de aplicații client-server care vor implementa un joc numit „Evadarea
din labirint” cu următoarele reguli:

1. La începutul jocului, jucătorul se găsește undeva în labirint, nu își cunoaște poziția și nu cunoaște
unde ar putea să fie ieșirea. Se teme că în labirint ar putea să fie animele sălbatice sau monștrii.
2. În labirint este total întuneric, deci jucătorul trebuie să se bazeze pe mișcări pentru a găsi
ieșirea. Acesta trebuie să își aleagă o direcție în care să meargă și să avanseze în acea direcție,
câte un pas, până când:
a. se lovește de un perete → caz în care trebuie să schimbe direcția
b. reuște să iasă din labirint → caz în care câștigă jocul
c. se întâlnește cu monstrul → caz în care pierde jocul.

Labirintul are dimensiunea 10x10 și poate să fie, de exemplu, de forma:

Vor exista 5 fișiere cu 5 modele diferite de labirint. Labirintul trebuie să aibă cel puțin o ieșire, dar nu
mai mult de 3, poate să aibă camere fără intrare/ieșire sau săli mai mari (mai mult de 1 pătrat între 2
pereți).

Jocul presupune următoarea desfășurare:

1. Jucătorul (prin intermediul aplicației client), în momentul în care dorește să înceapă un joc va
trimite serverului (prin tastare) mesajul START
2. Serverul (prin intermediul aplicației server), va alege random un model de labirint din cele 5
existente și va genera random poziția Monstrului (M) și cea a Jucătorului (J) ținând cont de
următoarele condiții:
a. Între jucător și monstru trebuie să existe o distanță de 3 ( 3 pătrățele din labirint) pe
verticală sau orizontală fară a ține cont de pereți (pot să fie si pereți între cei doi, sau
poate să nu fie un perete între ei)
b. Monstrul nu trebuie să blocheze calea Jucătorului spre ieșire.
c. Jucătorul trebuie să facă cel puțin 3 mutări pentru a ajunge la iesire (nu poate să fie
aproape de ieșire.

1|Pag
Rețele de calculatoare Listă de probleme

d. Jucătorul nu poate să fie blocat într-o cameră fără ieșire

Serverul afișează labirintul și pozițiile. De exemplu:

Serverul nu trimite către client imaginea labirintului, ci doar mesaj că jocul poate să înceapă
și că asteaptă input de la client.

3. Clientul afișează mesajul primit că jocul poate să înceapă și comunică acestuia că trebuie să
introducă următoarele comenzi pentru a se mișca:
a. U – Sus (Up)
b. D – Jos (Down)
c. L – Stânga (Left)
d. R – Dreapta (Right)
4. Clientul comunică serverului inputul jucătorului
5. Serverul contorizează instrucțiunea de mișcare(numără câți pași face), evaluează direcția de
mers și:
a. Mută Jucătorul un pătrat în direcția aleasă dacă pătratul este liber, afișează labirintul cu
poziția actuală și transmite clientului mesajul “OK”
b. Dacă în direcția cerută se găsește un perete, serverul nu mută Jucătorul și transmite
clientului mesajul “Imposibil, ai lovit un perete. Încearcă altă directie.”
c. Dacă în direcția cerută se găsește ieșirea serverul transmite clientului mesajul “Ai reușit!
Ai ieșit din labirint în … mișcări”
d. Dacă în direcția cerută se găsește Monstrul, serverul transmite clientului mesajul “Ai
picat pradă monstrului din labirint … ai pierdut jocul. Încerca din nou!”
6. Clientul afișează mesajele primite de la server și cere input Jucătorului astfel:
a. Pentru situațiile 5a si 5b jucătorul trebuie să introducă direcția dorită conform pasului 3
(U, D, L, R)
b. Pentru situația 5c si 5d clientul cere Jucătorului să introducă cuvântul “START” pentru a
începe un nou joc sau “STOP” pentru a închide.

Opțional, clientul poate să deseneze harta parțial descoperită.

Orar facultate
Se va concepe și realiza o pereche de aplicații client-server care vor implementa interogarea orarului
săptămânal al unui facultăți.

2|Pag
Rețele de calculatoare Listă de probleme

Pe server se vor stoca informații despre orar:

• An școlar – AN I, AN II, AN III, AN I Master, AN II Master


• Grupa și subgrupa
• Ziua săptămânii – Luni, Marți, Miercuri, Joi, Vineri
• Intervalul orar
• Denumirea materiei
• Tip materie – Curs, Laborator, Seminar
• Numele cadrului didactic
• Sala

Exemplu de orar pentru un an poate sa reprezinte chiar orarul din acest an:

http://inf.ucv.ro/documents/studenti/orar-2022-2023-sem-1-licenta-an-2.pdf

Clientul va interoga serverul pentru a afla informații.

Interacțiunea presupune următoarea desfășurare:

1. Studentul (prin intermediul aplicației client), în momentul în care dorește să înceapă o


interogare, trimite serverului (prin tastare) mesajul START
2. Serverul (prin intermediul aplicației server), răspunde clientului că asteaptă interogarea acestuia
și îi solicită acestuia Anul Școlar, Grupa și subgrupa.
3. Studentul, pe client, introduce Anul Școlar, Grupa și subgrupa

3|Pag
Rețele de calculatoare Listă de probleme

4. Serverul verifică corectitudinea informației primite și răspunde clientului:


a. “Nu există acest an scolar. Verificați și introduceți din nou” sau “Nu există această grupă.
Verificați și introduceți din nou”.
b. că așteaptă interogarea acestuia de forma comanda-optiune unde:

comanda este de forma:

DM_<Denumire Materie>

Z_Ziua, unde Ziua poate lua valorile Luni, Marti, Miercuri, Joi, Vineri

P_ <Nume_profesor>

optiune este de forma

null/necompletat = fara optiune

S_<Nume sala>

TM_<Tip Materie>, unde Tip Materie poate lua valorile

C – Curs, L – Laborator, S – Seminar

Ex:
DM_Retele de calcul
DM_Retele de calcul-TM_L
P_Gabriel Stoian
P_Gabriel Stoian-TM_C
Z_Luni
Z_Luni-O_10

5. Clientul afișează combinațiile de interogări disponibile:


a. DM_<Denumire Materie>- pentru a afla ora și ziua la care este un curs, laborator sau
seminar, cât și sala. Ex: DM_Retele de calcul
b. DM_<Denumire Materie>- TM_<Tip materie> – pentru a afla ora și ziua la care este un
curs/laborator/seminar, cât și sala. Ex: DM_Retele de calcul-TM_C
c. Z_Ziua - pentru a afla programul din ziua respectivă. Ex: Z_Miercuri
d. Z_Ziua-O_<Ora de inceput> – pentru a afla ce materie este programată la ora respectivă.
Ex: Z_Luni-O_10
e. Z_Ziua- TM_<Tip materie> – pentru a afla informații despre toate cusurile /
laboratoarele / seminarele programate în ziua dată. Ex: Z_Luni-TM_L
f. Z_Ziua-S_<Denumire sala> - pentru a afla informații despre toate orele programate în
ziua dată în sala dată. Ex: Z_Luni-S_119
g. P_ <Nume_profesor>– pentru a afla toate informațiile despre toate materiile
profesorului respectiv (ziua, ora, sala, tip materie) la anul și grupa selectate. Ex:
P_Gabriel Stoian

4|Pag
Rețele de calculatoare Listă de probleme

h. P_ <Nume_profesor>-TM_<Tip materie> – pentru a afla toate informațiile despre toate


cursurile/laboratoraele/seminarele profesorului respectiv (ziua, ora, sala) la anul și
grupa selectate. Ex: P_Gabriel Stoian-TM_L
6. Serverul procesează cererile primite. Valideaza interogările primite și pentru interogarile greșite
comunică:
a. “Nu există o astfel de comandă. Verificați și introduceți din nou” dacă nu există materia,
ziua sau profesorul cerut
b. “Nu există o astfel de optiune. Verificați și introduceți din nou” dacă nu există tipul de
materie sau sala cerute.
Pentru instructiunile corecte, serverul le evalueză și răspunde corespunzator, ținând cont de
anul și grupa introduse anterior. Serverul parcurge orarul de sus în jos și de la stânga la dreapta,
astfel că pentru instrucțiunile la care trebuie să returneze mai multe informații, acestea vor fi
organizate pe zile, începând de dimineața spre seară.
Ex: pentru instructiunea DM_Retele de calcul
Serverul va răspunde cu o variație a textului:
Marti 8-12
Inf 21 a, S impar, Gabriel Stoian, Retele de calcul, Laborator, L240
Inf 21 b, S par, Gabriel Stoian, Retele de calcul, Laborator, L240
Inf 24 a, S impar, Cristina Tudorache, Retele de calcul, Laborator,
L220A
Inf 24 a, S par, Cristina Tudorache, Retele de calcul, Laborator, L220A
Miercuri 8-10
Toate grupele, Gabriel Stoian, Retele de calcul, Curs, C363
Miercuri 10-14
Inf 22 a, S impar, Gabriel Stoian, Retele de calcul, Laborator, L240
Inf 22 b, S par, Gabriel Stoian, Retele de calcul, Laborator, L240
Inf 23 a, S impar, Cristina Tudorache, Retele de calcul, Laborator,
L220A
Inf 23 a, S par, Cristina Tudorache, Retele de calcul, Laborator, L220A

7. Clientul afișează informația primită de la server și solicită studentului să introducă o altă


interogare dacă dorește sau EXIT pentru a închide interogarea.

Categoria II – nota max 9


X și 0
Se va concepe și realiza o pereche de aplicații client-server care vor implementa un joc X și 0, asftel:

1. Jucătorul (prin intermediul aplicației client), în momentul în care dorește să înceapă o interogare
trimite serverului (prin tastare) mesajul START
2. Serverul (prin intermediul aplicației server), răspunde clientului că asteaptă ca acesta să aleagă
dacă dorește să joace cu X (să fie primul jucător) sau cu 0 (să fie cel de-al doilea jucător)
3. Jucătorul alege cu ce vrea să joace introducând X sau 0
4. Serverul transmite tabla de X și 0, completată cu X de către server dacă jucătorul a ales să joace
cu 0 )

5|Pag
Rețele de calculatoare Listă de probleme

5. Clientul afișează tabla și solicită jucătorului să introducă coordonatele din grid (sub forma
LiteraCifra) în care dorește să scrie
6. Serverul evaluează mesajul de la client și răspunde cu:
a. “Nu există o astfel de căsuță. Verificați și introduceți din nou”
b. Noua tablă de X și 0 în care este completată și valoarea introdusă de server
7. Jocul continuă până când Jucătorul sau serverul reușesc să realizeze o linie, coloană sau
diagonala. Serverul evaluează permanent inputul jucatorului și starea jocului și transmite către
client mesajul:
a. “Ai câștigat!” Daca Jucătorul a câștigat
b. “Serverul a câștigat!” Daca serverul a câștigat
c. “Jocul s-a terminat făra un câștigător!” Daca nici Jucătorul și nici serverul nu pot să
câștige
8. Clientul afișează tabla de X și 0 și mesjele de la server:
a. Dacă jocul nu este finalizat, solicită jucătorului să introducă coordonatele din grid (sub
forma LiteraCifra) în care dorește să scrie
b. Dacă jocul este terminat, afișează mesajele de la punctul 6. Adițional solicită jucătorului
să introducă cuvântul START pentru a începe un joc nou.

Piatră-Hârtie-Foarfecă
Se va concepe și realiza o pereche de aplicații client-server care vor implementa un joc Piatră-Hârtie-
Foarfecă, cel mai bun din 3 încercări, asftel

1. Jucătorul (prin intermediul aplicației client), în momentul în care dorește să înceapă o interogare
trimite serverului (prin tastare) mesajul START
2. Serverul (prin intermediul aplicației server) generează o valoare random dintre Piatră-Hârtie-
Foarfecă și comunică clientului că este pregătit
3. Clientul cere jucătorului să aleagă una din următoarele opțiuni:
a. P pentru Piatră
b. H pentru Hârtie
c. F pentru Foarfecă
4. Serverul evaluează mesajul de la client și:
a. în cazul în care jucătorul a introdus valori incorecte răspunde cu “Nu există o astfel de
variantă. Verificați și introduceți din nou”
b. evaluează câștigătorul jocului după regulile clasice (piatra zdrobește foarfeca, foarfeca
taie hârtia, hârtia acoperă piatra) și transmite clientului care a fost alegerea serverului și
cine a câștigat runda.
5. Jocul continuă cu runda 2 și runda 3(dacă este cazul). Clientul afișează mesajele de la server de
la punctul 4 si opțiunile pe care le are jucătorul (cele de la punctul 3)
6. Serverul evaluează inputul jucătorului și starea jocului, și, adițional mesajelor de la punctul 4,
transmite către client mesajul:

6|Pag
Rețele de calculatoare Listă de probleme

a. “Ai câștigat din x încercări!” Daca Jucătorul a câștigat


b. “Serverul a câștigat!” Daca serverul a câștigat
7. Clientul afișează mesajele de la server si:
a. Dacă jocul nu este finalizat, solicită jucătorului să introducă opțiunea sa (pct 3)
b. Dacă jocul este terminat, afișează mesajele de la punctul 6. Adițional solicită jucătorului
să introducă cuvântul START pentru a începe un joc nou.

https://ro.wikipedia.org/wiki/Piatr%C4%83,_h%C3%A2rtie,_foarfec%C4%83#/media/Fi%C8%99ier:Rock-
paper-scissors-ro.png

Categoria III – nota max 8


Lista lui Moș Crăciun
Moș Crăciun are o listă în care are trecuți toți copiii și cadourile pe care aceștia le vor primi. În ajunul
Crăciunului, spiridușii trebuie să verifice organizarea cadourilor.

Lista arată cam așa:

Nume Prenume Cadouri


Popescu Ionuț Bakugan, figurina Paw Patrol, bicicleta
Popescu Daniela Bicicleta, Papusa Ana
Andreescu Maria Puzzle printese, Papusa Elsa
Ionescu Radu Figurina Spiderman, masinuta de teren
Petrea Daniela Trotineta, Figurina Ariel
Stefănescu Ana-Maria Coarda,bicicleta, puzzle printese

Pentru a ajuta spiridușii, se va concepe și realiza o pereche de aplicații client-server care vor implementa
o căutare în lista lui Moș Crăciun cu următoarele reguli:

7|Pag
Rețele de calculatoare Listă de probleme

1. Spiridușul (prin intermediul aplicației client), în momentul în care dorește să înceapă o


interogare trimite serverului (prin tastare) mesajul START
2. Serverul (prin intermediul aplicației server), răspunde clientului că asteaptă interogări de tipul
nume, prenume sau cadou
3. Clientul cere spiridușului să introducă:
a. Nume “<Numele_dorit>”
b. Prenume „<Prenumele_dorit>”
c. Cadou „<Denumirea_cadoului_dorit>”
Ex: Nume „Popescu”
Prenume „Daniela”
Cadou „bicicleta”
4. Serverul primește și evaluează mesajul. Răspunde astfel:
a. “Nu există un copil cu numele introdus”, în cazul în care numele introdus nu se
regăsește pe listă
b. “Nu există un copil cu prenumele introdus”, în cazul în care prenumele introdus nu se
regăsește pe listă
c. “Nu există un cadou cu denumirea introdusă”, în cazul în care cadoul introdus nu se
regăsește în listă
d. Trimite către client toate informațiile din listă care corespund interogării și numărul lor.
Ex: spiridușul caută Prenume „Daniela”
Serverul va returna:
Popescu Daniela – Bicicleta, Papusa Ana
Petrea Daniela – Trotineta, Figurina Ariel
Daniela a fost gasita de 2 ori in lista
5. Clientul afișează mesajul primit de la server. Aditional afiseaza instrucțiunile de la pasul 3,
pentru situația în care spiridușul dorește să continue căutarea.

isProgression?
Se va concepe și realiza o pereche de aplicații, client-server, cu următoarea funcționalitate:

1. Utilizatorul prin intermediul aplicației client trimite serverului un set de numere (introduse de la
tastatură), separate prin virgulă, care conține cel puțin 5 valori și cel mult 10 valori
2. Serverul analizează setul de numere primit și răspunde astfel:
a. A(r), dacă setul de numere formează o progresie aritmetică de rație r
b. G(r), dacă setul de numere formează o progresie geometrică de rație r
c. N, dacă setul de numerele nu formează o progresie

Exemple de rulare:

# CLIENT SERVER
1 1, 2, 3, 4, 5, 6 A(1)
2 1, 2, 4, 8, 16, 32 G(2)
3 1,1,2,2,3,3,1,1,2,2 N

8|Pag
Rețele de calculatoare Listă de probleme

9|Pag

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