Oppgaver
2.3.3: Yatzy
Vi er på hytta og det er full stemning for Yatzy, men desverre har vi glemt terningene hjemme.
- Skriv et program som lar brukeren skrive en input n. Bruk deretter en for-løkke til å fylle opp en liste med n antall tilfeldige tall mellom 1 og 6. Skriv deretter ut lista.
- Utvid programmet slik at brukeren kan velge å kaste terninger igjen.
Idèer til utvidelser:
- La brukeren holde på de terningene de ønsker.
- Innfør betingelser og tester slik at brukeren får poeng utifra terningkastene.
- La brukeren spille et helt Yatzy spill med en eller flere personer.
Oppgave 1
Vi starter med å hente inn en input n fra brukeren, som vi gjør om til et heltall. Vi definerer deretter en tom liste. Vi lar en for-løkke kjøre n ganger og legge til ett tilfeldig tall mellom 1 og 6 for hver itterasjon. Vi printer så ut lista:
from pylab import*
n = input("Hvor mange terninger vil du kaste?") #Henter unput
n = int(n) #Konverterer til heltall
terninger = [] #Definerer tom liste
for i in range(n): #Løkke kjører n ganger
terninger.append(randint(1,7)) #Legger til tilfeldig tall i lista "terninger"
print(terninger)
Vi må konvertere n til heltall fordi vi skal bruke den som argument i en for løkke. randint(1,7) vi kun gi verdier opp til 6, ikke inkludert 7.
Oppgave 2
Vi utvider programmet fra forrige oppgave til å spørre brukeren om de vil kaste terninger igjen. Vi setter alt fra forrige oppgave inn i en while-løkke og skriver da:
from pylab import*
fornoyd= 0 #Definerer en variabel fornoyd
while fornoyd != "n": #Kjører så lenge fornoyd ikke er lik n
n = input("Hvor mange terninger vil du kaste?")
n = int(n)
terninger = []
for i in range(n):
terninger.append(randint(1,7))
print(terninger)
fornoyd = input("Vil du kaste på nytt? (j/n)") #Hvis brukeren skriver n,
#så stopper løkken
Vi definerer fornoyd utenfor løkken som noe annet enn "n", slik at løkken kjører første gangen. Vi må ha terninger-listen inne i løkken så den blir "tømt", for hvert nye kast. Vi spør til slutt brukeren om det ønsker å kaste terningen en gang til. Hvis brukeren skriver "n", vi løkken stoppe, hvis brukeren skriver noe annet kjører løkken igjen.