Laborator 5 PCLP2
Probleme Optionale
1. Implementați un joc de X și 0 in Python. Dupa fiecare miscare se va afișa tabla de joc
în modul urmator:
- | 0 | X
==========
- | X | ==========
- | - | unde:
- reprezeintă pătratele libere, X reprezintă mișcările primului jucător și 0 reprezintă
miscările celui de-al doilea jucător. După, tabla de joc se va afișa unul din mesajele „X
Turn, enter a number from 1-9:” sau „0 Turn, enter a number from 1-9:”,
în funcție de jucătorul ce urmează să facă o mișcare. Miscările se fac prin introducerea
unui număr din intervalul [1-9]. Dacă mutarea nu este validă se va afișa un mesaj, iar
jucatorul va putea introduce o altă mutare. La final se va afișa un mesaj cu jucatorul
câștigător.
Bonus:
•
•
Implemențati opțiunea de a porni un joc nou o dată ce jocul s-a încheiat și afișați
scorul la finalul fiecărui joc (câte jocuri a câștigat X și câte a câștigat 0).
Implementați opțiunea de a juca împotriva calculatorului. Acesta va face automat
o mutare la întâmplare, după mutarea jucătorului. (puteți folosi modulul random) .
2. Implementați un joc de tip spanzuratoarea. Jucătorul poate introduce pe rând litere de
la tastatura una cate una. După fiecare mutare se va afișa numărul de mișcări rămase
sub formă de spânzurătoare (pentru fiecare literă greșită se desenează o parte în plus
din spânzurătoare), urmat de cuvântul completat cu literele descoperite ca in exemplul
urmator:
------|
|
|
0
|
/ | \
|
/ \
|
----------TI_I__A_A
Enter a letter [A-B]:
Pentru fiecare litera se va afișa inițial câte un underline _. O dată ce o literă a fost
introdusă, ea nu mai poate fi introdusă incă o dată. La finalul jocului se va afișa un
mesaj ce va spune dacă utilizatorul a câștigat (a ghicit cuvântul) sau a pierdut (a rămas
fără mișcări).
Bonus:
•
•
După fiecare mișcare afișați și literele ce au fost deja introduse.
Implementați opțiunea de a porni un joc nou o dată ce jocul s-a încheiat și afișați
scorul (numarul de jocuri caștigate).
3. Implementați jocul 2048. Jocul este format dintr-o matrice de dimensiunea 4x4 unde
fiecare patrat va avea ca numar o putere a lui 2. Jucatorul alege o miscare tastand
una din literele wasd (up, left, down, right). Miscarea va muta toate piesele de pe
tabla in una din directiile date, pana acestea ajung la marginea tablei, sau nu au loc
de alte piese ce au valori diferite, ca in exemplul urmator:
[2, 0, 0, 4]
[0, 0, 0, 0]
[0, 0, 0, 0]
[0, 2, 2, 0]
[0, 0, 2, 4]
[0, 0, 0, 0]
[2, 0, 0, 0]
[0, 0, 0, 4]
Daca 2 piese, au aceeasi valoarea, atunci ele se vor combina, si va aparea o piesa
cu urmatoarea putere a lui 2. Dupa fiecare mutare, o noua piesa de 2 este adaugat in
mod aleator pe tabla iar dupa ce se afiseaza table va aparea mesajul „Enter move
[w/a/s/d]”. Jocul se termina in momentul in care pe tabla nu mai este loc de a
adauga o noua piesa de 2. Pentru a castiga, jucatorul trebuie sa reuseasca sa formeze
o piesa cu valoarea 2048.
Bonus:
•
Calculati si afisati scorul jucatorului dupa fiecare mutare. La scor se adauga
valoarea fiecarei piese creată prin combinarea a doua piese.