Å spille Yatzy synes mange barn og voksen er skikkelig artig. Men hvor vanskelig er det egentlig å lykkes? Jeg er kanskje en av verdens dårligste Yatzy spiller, og muligens er det fordi jeg har arbeidet mye med sannsynlighet i terningspill og vet hvor mye flaks som er involvert når jeg blir grust av de aller fleste jeg spiller med. Vinner jeg, har jeg skikkelig dårlige poengsummer.
Så hvor vanskelig er det å få Yatzy på et kast? Det er jo samme uansett hvilket tall jeg får, så det burde jo ikke være så vanskelig. Det som er vanskelig er at når det første terningen har stoppet å trille, må jo de andre stoppe på akkurat det samme tallet. Og det skjer jo sjelden…
Kompetansemål matematikk 9.trinn
– utforske og argumentere for hvordan framstillinger av tall og data kan brukes for å fremme ulike synspunkter
– beregne og vurdere sannsynlighet i statistikk og spill
– simulere utfall i tilfeldige forsøk og beregne sannsynligheten for at noe skal inntreffe, ved å bruke programmering
Krav til programmet
Programmet skal kunne kaste fra 2-6 terninger og finne ut ulike muligheter for likhet og sannsynligheten for at de inntreffer. Vi skal kaste terninger hver gang vi trykker på A-knappen, vise antall kast vi har kastet når vi trykker på B-knappen og tilslutt antallet treff + frekvensen når vi trykker på både A og B knappen.
Forberedelser
Snakk med elevene om sannsynlighetene for å få et bestemt tall med en terning. Utvid deretter til å snakke om å få et bestemt tall med to terninger. Spill gjerne spillet «Over eleven» og få i tillegg elevene til å sette opp en tabell som viser hvordan utfallet av to terninger vi bli.
Disse aktivitetene finner du i opplegget Sannsynlighet med to terninger
Bruk også litt tid til å regne på hvordan vi kommer fram til sannsynligheten for like tall.
Steg 1 – opprette variabler
Vi trenger en rekke variabler for programmet. En for hver terning, samt en for antall kast og en for antall ganger likhet forekommer.

Steg 2 – kaste 2 terninger
Hver gang vi trykker på A-knappen skal terningene kastes. Vi begynner med å kaste to terninger og plassere dem i variabler. Deretter registrer vi at vi har kastet.

Steg 3 – foreta nødvendig kontroll
Vi må legge inn en kontroll som kan kontrollere om tallene vi fikk er like. Om de er like, så har vi funnet 2 like og vi må registrere dette i variabelen som tar vare på antall like forekomster vi kaster. Det er ikke en kontroll på hvilket tall vi fått, bare om tallene er like.

Steg 4 – vise resultater
Når vi trykker på knapp A skal vi vise hvor kan kast vi har kastet. Da viser vi innholdet i variabelen antall kast, og vi gjør ingenting annet med variabelen.


Steg 5 – utvide til 3 terninger
Nå skal vi utvide programmet til å teste for å om alle tre terningene viser samme tall. Før dere programmerer la elevene komme med forslag til hvor ofte tre like vil forekomme med tre terninger. Er det noen som kan regne seg fram til det?
Programmet må nå utvides til å kaste tre terninger. Deretter må en teste tallene for likhet. Selve testen kan løses på flere måter. En kan først velge å teste tall1 og tall2 mot hverandre og deretter tall1 og tall3 om de er like. Er ikke tall1 og tall2 like er det ikke noe poeng å fortsette å teste tall3.

Alternativt kan en bygge opp en test bestående av «OG» tester. Da må både tall1 og tall2 være like OG tall1 og tall3 være like.

Test ut programmet. Hvor mange like får dere etter 10, 50, 100, 1000 kast? Stemmer dette med antagelsene?
Steg 6 – Utvide til 4 terninger
Tid for å utvide programmet til å teste for å om alle fire terningene viser samme tall. Før dere programmerer la elevene komme med forslag til hvor ofte fire like vil forekomme med fire terninger. Er det noen som kan regne seg fram til det?
Programmet må nå utvides til å kaste fire terninger. Deretter må en teste alle tallene for likhet.

Test ut programmet. Hvor mange like får dere etter 10, 50, 100, 1000 kast? Stemmer dette med antagelsene?
Steg 7 – Utvide til 5 terninger
Tid for å utvide programmet til å teste for å om alle fem terningene viser samme tall. Før dere programmerer la elevene komme med forslag til hvor ofte fem like vil forekomme med fem terninger. Er det noen som kan regne seg fram til det?
Programmet må nå utvides til å kaste fem terninger. Deretter må en teste alle tallene for likhet.

Test ut programmet. Hvor mange like får dere etter 10, 50, 100, 1000 kast? Stemmer dette med antagelsene?
De som liker å spille MaxiYatzy kan nå implementere den sjette terningen. Jeg er så lite glad i Yatzy at det gidder ikke jeg.
Steg 8 – kaste flere ganger?
Når vi kommer så langt er det vanskelig å få Yatzy og jeg regner med at noen ble veldig slitne i tommelen uten å få Yatzy. La oss effektivisere programmet litt slik at et trykk på A-knappen gjennomfører 20 kast. Da kommer vi raskere i mål 🙂

Hvordan ser det ut nå? Noen som får Yatzy?
Steg 9 – logge resultater og store talls lov
For å se hvordan frekvensen på Yatzy endrer seg, kan vi legge inn litt logging underveis. Denne loggingen kan dere legge inn allerede ved to terninger om dere er nysgjerrig på hvordan ting endrer seg underveis og hvor viktig store talls lov er i sannsynlighetsarbeid.
Vi legger til litt kode som logger data via serieporten til loggkonsollen i MakeCode via WebUSB grensesnittet.

Da vil vi kunne lese ut loggdata i konsollet som i dette tilfellet viser oss antall kast og frekvensen. Jeg kunne også hentet ut hvor mange ganger jeg fikk Yatzy og hvilket tall jeg fikk Yatzy med om jeg skulle ønske det.

Steg 10 – regne litt sannsynlighet
La oss nå regne litt på hvor sannsynlig det er å få Yatzy på et kast. Den første terningen bestemmer hvilket tall du skal få Yatzy med, og de andre må bare følge dette. Altså vil den første terningen ikke ha noen som helst betydning for resultatet da den kan få hvilket som helst tall. De andre terningene må få det samme tallet, og det er det bare 1/6 mulighet for på hver terning.
Vi får da dette regnestykket for 5 terninger:

En ferdig versjon av programmet finner du her https://makecode.microbit.org/_dPr9shahpH7t
Utfordringer
– beregne sannsynligheten for Yatzy i et kast med 6 terninger