Ekstra oppgaver uke 4

Dette er oppgaver/temaer vi jobber med sammen i gruppetimen i uke 4.

Oppgave 1: Lesbarhet

F?lgende kode kaster seks terninger og teller hvor mange kaste det tar f?r man f?r Yatzy (seks p? alle terningene). Koden er rotete og vanskelig ? forst?. Fors?k ? rydde opp i koden og gj?r den mer lesbar.

from random import randint
from sys import exit
j = 0

while True:
    # kast 6 terninger
    t = []
    for i in range(6):
        t.append(randint(1, 6))

    # sjekk om alle terningene er 6
    sjekk = True
    for i in range(0, 6):
        if t[i]!=6:
            sjekk=False
            
    if sjekk == True:
        print("Alle terningene er 6! Det tok", j, " kast.")
        exit()

    j += 1

Tips:

Oppgave 2

Som del av l?sningen vi fant i oppgave 1, skrev vi en egen funksjon for ? sjekke om alle terningene er 6.

Vi ?nsker n? ? i stedet telle hvor mange kast vi bruker p? ? f? hus (4 av ett tall og 2 av et annet). Lag en ny funksjon for ? sjekke om terningene gir hus. Tips: Det kan l?nne seg ? dele opp problemet ved ? lage hjelpefunksjoner.

Oppgave 3: Assert

Det er fort gjort ? ha sm? feil i funksjoner av den typen vi skrev i oppgave 2 uten at de blir oppdaget.

Skriv noen assert-statements som sjekker at funksjonen fungerer som den skal.

Oppgave 4: Mer avanserte for-l?kker og funksjoner

Ekstraoppgave

Oppgaven er basert p? en tidligere eksamensoppgave:

Skriv en funksjon som har en liste med terninger som parameter og som returnerer en verdi av type boolean.

Funksjonen skal sjekke om alle verdiene i listen er i stigende rekkef?lge (sortert), og returnere True hvis de er det (False hvis ikke). Det kan v?re duplikater i listen, men en liste av typen "1, 2, 2, 4" skal returnere True.