Documente Academic
Documente Profesional
Documente Cultură
4 Programarea Interactivă
Cerinţe:
Crearea unei interfeţe grafice la jocul elaborat în laboratorul precedent.
Magic 8 Ball sau mistic 8 Ball, minge ce prezice soarta, este o minge de întrebări şi
răspunsuri, ne spune previziunile cu bila - o jucărie, un mod de comic de a prezice viitorul.
Descriere
Magic 8 Ball - o minge care arata ca o minge de biliard, dar mai mare - de obicei 10-11 cm în
diametru, în care este un recipient cu un lichid de culoare închisă, cum ar fi de cerneală. Se
pune întrebarea, se agită bila şi citeşte răspunsul apărut.
Răspunsuri posibile
În mod tradiţional bila are 20 de răspunsuri care pot fi împărţite în patru grupe.
Pozitiv:
● Este sigur (fără îndoială)
● Este incontestabil (o concluzie dinainte)
● Fără îndoială (fără îndoială)
● Da - cu siguranţă (cu siguranta da)
● Puteţi să vă bazaţi pe ea (Puteţi fi sigur de asta)
Ezitant pozitiv
● După cum văd eu lucrurile, da (cred - "da")
● Cel mai probabil (cel mai probabil)
● Outlook bun (perspective bune)
● Punct de semne pentru a da (semnul spune - "da")
● Da (Yes)
Neutru
● Răspuns neclar, încercaţi din nou (nu este clar, încercaţi din nou)
● Adresaţi-vă din nou mai târziu (întrebaţi mai târziu)
● Mai bine nu-ţi spun acum (Mai bine nu spun)
● Nu se poate prezice acum (Cine nu poate prezice)
● Se concentrează şi întreabă din nou (concentrat şi de a pune din nou)
Negativ
● Nu conta pe el (nu cred)
Lucrarea de Laborator Nr. 4 Programarea Interactivă
# Iata un exemplu de
# rezultat a acestui program:
#
# Intrebarea a fost... Voi deveni eu bogat?
# Se scutura bila.
# Apare raspunsul...
# Bila misterioasa ne spune... Probabil da.
#
# Intrebarea a fost... Va cistiga Zimbru campionatul europei?
# Se scutura bila.
# Apare raspunsul...
# Bila misterioasa ne spune... Probabil nu.
def numar_prezice(numar):
# Scrie aici codul.
# Utilizeaza if...elif...else
# pentru a verifica numarul
# si a returna sirul prezis.
def mystical_ball(intrebarea):
# Afiseaza un rind
# Bila ne spune...
# si introdu prezicerea
mystical_ball("Voi fi eu bogat?")
mystical_ball("Va cîstiga Zimbru campionatul europei?")
1. Adaugă o funcţie pentru a reporni jocul, astfel încît să nu aveţi nevoie să faceţi clic în mod
repetat "Run" pentru a juca de mai multe jocuri. Ar trebui să adăugaţi două opţiuni de alegere:
"Interval: 0-100" şi "Interval 0 - 1000", care ar permite jucătorului să aleagă intervale diferite
pentru numărul secret. Folosind oricare din aceste opţiuni ar trebui să reporniţi jocul şi
imprima un mesaj adecvat.
Pe masura ce joci "Ghiceşte numărul", s-ar putea observa că o bună strategie este de a
menţine un interval care constă în cea mai mare valoare din "Mai puţin" decît numărul secret
şi cel mai mic din "Mai mare" decît numărul secret. O alegere bună pentru ghici este numărul
care este media celor două numere. Răspunsul pentru această nouă ghicire atunci vă permite
să dăm un nou interval care conţine numărul secret şi care este pe jumătate la fel de mare. De
exemplu, în cazul în care numărul de secrete este în intervalul [0, 100), este o idee bună
pentru a ghici 50. În cazul în care răspunsul este "Mai mare", numărul secret trebuie să fie în
intervalul [51, 100). Apoi o idee bună este să ghicească 75 şi aşa mai departe. Această tehnică
de îngustare succesiv a gamei corespunde unui algoritm binecunoscut ca Căutare binară.
Avînd în vedere că strategia de mai sus pentru a juca "Ghiceşte numărul" aproximativ
jumătăţeşte intervalul de posibile numere secrete după fiecare ghicire, orice număr secret în
intervalul [puţin, mare) poate fi întotdeauna găsit în cel mult n presupuneri unde n este cel
mai mic întreg astfel de că 2 ** n> = mare - puţin + 1. Pentru intervalul [0, 100), n este şapte.
Pentru intervalul [0, 1000), n este de zece. La punerea în aplicare a funcţiei new_game() setaţi
numărul de ghiciri permise la şapte cînd intervalul este [0, 100) sau la zece cînd intervalul este
[0, 1000).
Cînd programul începe, jocul ar trebui să înceapă imediat în intervalul [0, 100).
def range100():
# funcţia ce schimbă intervalul la [0,100) şi începe un joc nou
def range1000():
# funcţia ce schimbă intervalul la [0,1000) şi începe un joc nou
def input_guess(ghicirea):
# logica principala a jocului
#Test 1
secret_number = 74
input_guess("50")
input_guess("75")
#Mai putin!
#
#Numarul ghicit este 62
#Numarul de incercari ramas 4
#Mai mare!
#
#Numarul ghicit este 68
#Numarul de incercari ramas 3
#Mai mare!
#
#Numarul ghicit este 71
#Numarul de incercari ramas 2
#Mai mare!
#
#Numarul ghicit este 73
#Numarul de incercari ramas 1
#Mai mare!
#
#Numarul ghicit este 74
#Numarul de incercari ramas 0
#Corect!
#
# Joc nou. Intervalul este de la 0 la 100
#Numarul de incercari ramas 7
Cei care participă (de obicei 2, dar se poate şi cu mai mulţi), spun „Piatră!” „Hârtie!”
„Foarfecă!” de două ori, dar a doua dată, când spun „foarfecă” (sau în loc de a spune cuvântul
„foarfecă”), fiecare jucător face unul din următoarele gesturi cu mâna: un pumn, o palmă
deschisă sau extinzând degetul arătător şi cel lung ca o foarfecă. Dacă ambii jucători au
acelaşi gest, se repetă până gesturile diferă. Piatra fiind în stare să strice foarfeca, va câştiga
dacă aceste două gesturi au fost făcute. Dacă s-a făcut foarfecă şi hârtie, câştigă foarfeca (căci
poate tăia hârtia), iar dacă se face piatră şi hârtie, câştigă hârtia, căci poate împacheta piatra.
Lucrarea de Laborator Nr. 4 Programarea Interactivă
6) Elaboraţi un program Python ce ar simula jocul sau „Cine trage paiul mai
scurt”