Terningspillet 21 – undervisningsopplegg i programmering og utforskning av data

I klassen min har elevene lagt sitt elsk på terningspillet 21. Dette er ganske enkelt og reglene er slik:

Du triller en terning, og legger verdien til summen din. Slik forsetter en til en kommer til 21. Dvs. får du mer enn 21, må du trekke verdien din dra summen. Du må altså ha nøyaktig 21 for å vinne.

En elev begynte å lure på hvor mange kast han hadde hatt før han fikk 21, og vi fikk en fin samtale i klassen rundt dette. Antall kast ville selvsagt variere etter hva en fikk på terningen underveis i spillet. Jeg spurte dem om de kunne finne ut hva som ville være det minste antall kast en kunne få, og hvilke kombinasjoner som kunne gi 21 med minste antall kast. En artig, åpen oppgave som elevene kastet seg over.

Men elev ga seg ikke, og var nysgjerrig på hvor mange kast andre i klassen hadde brukt for å komme til 21. Dette varierte selvsagt, og de aller fleste hadde ikke telt. Så etter en liten samtale, fortalte jeg at jeg kunne lage et lite dataprogram som simulerte et stort antall spill. Dette skjønte han lite av, og jeg måtte ta programmet med på skolen.

Krav til programmet:
Vi skal lage et dataprogram som simulerer et stort antall spill av varianten 21. Reglene i spillet er enkle. Verdien av terningen legges til tidligere sum. Får en mer enn 21, må en trekke verdien av terningen fra summen. For å vinne må en ha nøyaktig 21. Antall kast skal telles opp, og legges inn i en tabell.

Underveis skal en finne minste og største antall kast, samt gjennomsnittet for å komme til 21.

Kompetansemål:
Matematikk etter 7.trinn:
– bruke programmering til å utforske data i tabeller og datasett

Matematikk etter 9.trinn:
– simulere utfall i tilfeldige forsøk og beregne sannsynligheten for at noe skal inntreffe, ved å bruke programmering

Før vi begynner
La elevene spille noen runder med 21 før dere begynner. Gjør dem bevist på hvor mange kast de trenger før de når 21.

  • Hva er det minste antall kast en trenger?
  • Hva er det største antall kast noen bruker?
  • Hvilke kombinasjoner, med minst antall kast, gir 21?

En variant av programmet finner du på https://scratch.mit.edu/projects/954247840

Steg 1 – Klargjøre Scratch
I dette programmet trenger vi ingen spesiell bakgrunn eller figur, men vi må ha en figur vi kan koble koden til. Om du vil skjule den, så kan du det.

Steg 2 – Gjøre klar noen variabler
Vi trenger noen variabler til dette programmet. Vi begynner med en variabel til terning, en til sum og en som teller antall kast som vi kaller teller. Disse trenger vi ikke å vise fram.

Steg 3 – Oppstart
Start programmet når du klikker på det grønne flagget. Vi begynner så med å sette nødvendige variabler til 0, slik at de ikke lager problemer når vi skal kjøre programmet mange ganger senere.

Steg 4 – Trille terningen
Vi skal nå trille terningen, og dette kommer vi til å gjøre flere. Hvor mange er usikkert, men vi skal gjøre det til summen er blitt 21, så vi lager en løkke med dette som vilkår.

Vi setter terningen til et tilfeldig tall mellom 1 og 6, og endrer telleren som teller antall kast med 1.

Steg 5 – Kontrollere om vi skal legge til eller trekke fra
Vi lager en enkel kontroll på om summen allerede er større enn 21. Om den er større, må vi trekke fra verdien på terningen. Om ikke skal den legges til.

All koden legges inn i løkken vi laget i steg 4.

Steg 6 – ta vare på antall kast
Vi ønsker å ta vare på antall kast i en tabell. Dermed oppretter vi en liste vi kaller antall_kast som tar vare på oversikten over antall kast som må til før vi klarer å få 21.

Denne tømmer vi når vi begynner programmet.

Etter løkken legger vi inn verdien fra telleren i listen.

Steg 7 – simulere 1000 spill
I en simulering skal vi foreta mange spill, så vi lager en løkke som gjennomføres 1000 ganger, og på den måten simulere 1000 spill.

All koden vi har laget, legger vi inne i denne løkken.

Steg 8 – Teste
Da er det på tide å teste programmet. Legg inn 1 som antall ganger løkken skal kjøres.

  • Legges antall kast i tabellen?

Endre tallet til 10

  • Legges det 10 forekomster i tabellen?

Steg 9 – Bearbeide data
Om vi kjører 1000 simuleringer, kan vi velge om vi vil behandle dataene underveis, eller etter at dataene er lastet inn i tabellen. Denne gangen skal vi bearbeide dataene etterpå. Det vil si at vi leser gjennom alle dataene vi har lagt i tabellen og behandler dem.

Vi skal finne:
– maksimum antall kast
– minimum antall kast
– gjennomsnitt antall kast

Steg 10 – Lage en funksjon
For å gjøre programmet mer oversiktlig legger vi koden til databehandlingen i en egen funksjon vi kaller når vi er ferdig med simuleringen. Funksjoner kalles «Mine klosser» i Scratch, og vi lager en kloss vi kaller Behandle_data

Den andre blokken, plasserer vi nederst i programmet vi laget i steg 1-10.

Steg 11 – Nye variabler
Vi trenger et sett med nye variabler, så vi oppretter tre nye variabler; antall_kast for hvert enkelt kast, min_kast for minimum antall kast, max_kast for maksimum antall kast og gjennomsnitt for gjennomsnitt antall kast i simuleringen. Disse kan vises.

Vi setter variablene:

Min_kast settes til et høyt tall, og vil bli justert etter hvert til et passende tall.

Steg 12 – Hente ut en og en verdi fra listen
Vi lager en løkke som henter ut en og en verdi fra listen. Den skal gjentas like mange ganger som det er forekomster i listen.

Vi setter variabelen antall_kast lik elementet i listen.

Steg 13 – Finne min og maks antall kast
Først endrer vi sum med verdien vi nettopp hentet ut. Denne skal vi bruke til å finne gjennomsnittet helt til slutt.

Deretter lager vi to tester som sjekker ut om antall kast er større enn verdien for maks antall kast som vi har fra før. Er den det, endrer vi vairabelen max_kast  til denne verdien.

Vi gjør tilsvarende for minste antall kast. Er verdien mindre enn verdien for min antall kast som vi har fra før, endres denne verdien.

Det siste vi gjør i løkken, er å endre telleren med 1, slik at vi kan hente ut neste element i listen.

Steg 14 – Regne ut gjennomsnitt antall kast
For å regne ut gjennomsnittet, tar vi summen, som vi har regnet ut, og deler på antall forekomster i tabellen. Denne variabelen passer vi på å vise.

Steg 15 – Test
Da er programmet ferdig, og det er nødvendig å teste at det fungerer. Legg inn 2 løkken, slik at vi kjører 2 simulering av terningspillet. Sjekk ut følgende:
– teller den opp antall kast i hvert av spillene
– legges verdien inn i tabellen
– finner den minste antall kast
– finner den største antall kast
– finner gjennomsnittet antall kast av de to simuleringene

Utvidelse
Når du er ferdig, kan du prøve å finne ut av følgende:
– hvor mange spill vinnes på minste antall kast?
– hva er frekvensen for å vinne på minste antall kast?

Til samtale
– Hvordan endrer

PS! Ønsker du Python versjon av opplegget, så er det underveis.

Kommentarer er stengt.

Blogg på WordPress.com.

opp ↑