Du tror en tilfeldig verdi fornyer seg selv
Handler om: Tilfeldighet (random), Løkke
Du kaller random én gang og bruker variabelen inne i løkka, og venter at den skal være ny hver runde. Men random er tilfeldig i det øyeblikket den KALLES. Står kallet over løkka, kjører det én gang, og variabelen holder den samme verdien resten av programmet.
Eksempel
Spillet ditt trekker «storm» på dag 1 — og så er det storm alle de nitten andre dagene også, fordi trekningen står over while-løkka.
Slik tenker du riktig om det
Tenk på random som et terningkast, ikke som en terning. Kastet skjer når linja kjører; resultatet blir liggende til du kaster på nytt. Vil du ha et nytt kast hver runde, må kastet stå inne i løkka.
Slik ser det ut i kode
Slik gikk det galt
hendelse = random.choice(liste) # trekkes EN gang
while dag <= 20:
print(hendelse) # samme hver dag
dag += 1 Slik fikser du det
while dag <= 20:
hendelse = random.choice(liste) # trekkes hver dag
print(hendelse)
dag += 1