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)