import random # Løsningsforslaget består av to prosedyrer # Den første prosedyren er oppgave 1 og den andre er en enklere versjon for oppgave 2 def spill(): valg = int(input("Hvilken dør velger du? 0, 1 eller 2?")) # lag dører dorer = ["geit", "geit", "bil"] # shuffle dører random.shuffle(dorer) # "åpne" en dør som har en geit (og som ikke var den som ble valgt) # variabelen "opne" er døren verten skal åpne # PS: Det finnes mer elegante og kortere måter å gjøre dette på, enn alle if-elif-else-setningene under if dorer[valg] == "bil": # vi kan åpne hvilken som helst av de andre dørene som ikke ble valgt if valg == 0: opne = 1 siste_dor = 2 elif valg == 1: opne = 2 siste_dor = 0 elif valg == 2: opne = 1 siste_dor = 0 elif dorer[valg] == "geit": # vi kan åpne en annen dør, men må sjekke at det ikke er en bil der if valg == 0: if dorer[1] == "geit": opne = 1 siste_dor = 2 else: opne = 2 siste_dor = 1 elif valg == 1: if dorer[0] == "geit": opne = 0 siste_dor = 2 else: opne = 2 siste_dor = 0 else: if dorer[0] == "geit": opne = 0 siste_dor = 1 else: opne = 1 siste_dor = 0 bli = input("Du valgte dør nr. " + str(valg) + ", men denne er låst. Det er en geit bak dør " + str(opne) + ". " + "Vil du fortsatt åpne døren du valgte, eller bytte til den siste døren, dør nr. " + str(siste_dor) + "? Skriv ja eller nei:") if bli == "ja": if dorer[valg] == "bil": print("Gratulerer, du vant bilen!") else: print("Du vant en geit") else: if dorer[siste_dor] == "bil": print("Gratulerer, du vant bilen!") else: print("Du vant enn geit") def spill_oppgave2(): # vi velger alltid en fast dør valg = 0 dorer = ["geit", "geit", "bil"] random.shuffle(dorer) if dorer[valg] == "bil": if valg == 0: opne = 1 siste_dor = 2 elif valg == 1: opne = 2 siste_dor = 0 elif valg == 2: opne = 1 siste_dor = 0 elif dorer[valg] == "geit": if valg == 0: if dorer[1] == "geit": opne = 1 siste_dor = 2 else: opne = 2 siste_dor = 1 elif valg == 1: if dorer[0] == "geit": opne = 0 siste_dor = 2 else: opne = 2 siste_dor = 0 else: if dorer[0] == "geit": opne = 0 siste_dor = 1 else: opne = 1 siste_dor = 0 bli = "nei" if bli == "ja": if dorer[valg] == "bil": return "vant" else: return "tapte" else: if dorer[siste_dor] == "bil": return "vant" else: return "tapte" antall_seiere = 0 for i in range(10000): returverdi = spill_oppgave2() if returverdi == "vant": antall_seiere += 1 print("Antall seiere:", antall_seiere) print("Andel seiere:", antall_seiere/10000)