Materjalid koostas ja kursuse viib läbi
Tartu Ülikooli arvutiteaduse instituudi programmeerimise õpetamise töörühm
< eelmine | 3. nädala sisukord | järgmine > |
3.4 Juhuslikust arvust veel
VISKAME TÄRINGUID
Eemisel nädalal tutvusime juhuslike arvudega, mida saab kasutada näiteks erinevate mänguliste programmide loomisel. Proovime juhuslikkust nüüd tsükliga siduda. Esialgu teeme programmi, mis viskab viis korda täringut. Olgu see tavaline kuuetahuline täring.
from random import randint i = 1 while i < 6: print("Täringu " + str(i) + ". viskel saadi " + str(randint(1, 6)) + ".") i += 1 # i = i + 1
Kui me midagi muud visketulemusega teha ei taha, siis võimegi selle väljundisse sisse kirjutada. Sageli aga tahame viske tulemusega midagi teha. Näiteks tulemused kokku liita ja kuue saamisel eriliselt rõõmustada.
from random import randint i = 1 tulemus = 0 while i < 6: vise = randint(1, 6) print("Täringu " + str(i) + ". viskel saadi " + str(vise) + ".") if vise == 6: print("Hurraaaaaaaa!") tulemus += vise i += 1 print("Kogutulemus on " + str(tulemus) + ".")
Soovijad võivad täringu nii ümber teha, et täringul oleks mingi muu arv tahke. Näiteks mängus Dungeons & Dragons on ka 4-, 8-, 10-, 12- ja 20-tahulised täringud. Võib ka soovitud tahkude arvu kasutajalt küsida.
SEIKLUS METSAS
Järgmine programm on senistest pikem ja simuleerib võimalikku jalutuskäiku metsas. Hoiatus! Tegemist on metsaga, kus on nii ohte kui ahvatlusi. Siiski on soovitav katsetada. Ennekõike aga püüdke programmist aru saada.
from random import randint elusid = 3 münte = 0 while elusid > 0: print("Jalutasid metsas ja nägid ", end = "") # ei vaheta rida kedaMida = randint(1, 3) if kedaMida == 1: print("seent", end = "") # ei vaheta rida if randint(1, 2) == 1: print(", mis kahjuks oli mürgiseen ja sa kaotasid ühe elu.") elusid -= 1 else: print(", mis õnneks oli söögiseen ja sa said tema müügist ühe kuldmündi.") münte += 1 elif kedaMida == 2: print("karu", end = "") # ei vaheta rida if randint(1, 2) == 1: print(", kes kahjuks oli vihane ja sa kaotasid ühe elu.") elusid -= 1 else: print(", kes õnneks oli rõõmus ja sa said temalt 5 kuldmünti.") münte += 5 else: print("kuldmünti ja said selle endale.") münte +=1 print("Nüüd on sul " + str(elusid) + "elu ja " + str(münte) + " kuldmünti.") input("Jätkamiseks vajuta Enter-klahvi.") print("Sellega on su seiklus kahjuks läbi.")
Võiksite seda programmi täiendada. Näiteks teha nii, et
- teatud müntide arvu juures kuulutatakse mängija võitjaks. Hetkel on selgelt letaalse seiklusega tegemist;
- ohte või ahvatlusi oleks rohkem;
- elu kaotamise tõenäosus oleks väiksem;
- ka kasutaja saaks saatuse määramisel kaasa lüüa.
Loomulikult võite ka ise täiendusi juurde mõelda.
Ülesanne
< eelmine | 3. nädala sisukord | järgmine > |