Dette opplegget er inspirert av en scene i serien Big Bang Theory, der gutta ikke nøyer seg med stein-saks-papir for å avgjøre uenigheter, men tar i bruk stein-saks-papir-øgle-Spock.
Stein, saks, papir et artig og raskt spill som barn og ungdom både leker og benytter om de skal avgjøre mindre diskusjoner som hvem som skal begynne i et spille eller en lek. Spillet har relativt få utfallsmuligheter, og venner som spiller ofte mot hverandre vil kjenne hverandre godt og gjerne vite hva den andre gjør.
Vi skal leke litt med dette spillet, og begynner med å få en microbit til å spille stein-saks-papir. Deretter skal vi få to microbits til å spille mot hverandre, der den ene starter og kontrollerer spillet…. Kanskje ikke helt naturlig, men vi prøver likevel. Vi skal også bruke det litt til å se på sannsynligheten for å vinne i et slikt spill.
Kompetansemål matematikk 9.trinn:
- berekne og vurdere sannsyn i statistikk og spel
- simulere utfall i tilfeldige forsøk og berekne sannsynet for at noko skal inntreffe, ved å bruke programmering
Kompetansemål naturfag 10.trinn:
- utforske, forstå og lage teknologiske systemer som består av en sender og en mottaker
Del 1 – Stein saks papir på en microbit
La oss først lage stein-saks-papir og teste dette ut på en microbit. Programmet vi skal lage er ganske enkelt, og skal telle ned fra 3, og deretter velge et tilfeldig tall, som samsvarer med enten stein, saks eller papir. Avhengig av tallet, skal det vise et bilde på skjermen.
La oss lage en nedtelling. Når du trykker på A-knappen skal microbiten telle ned 3-2-1.

Når dette er gjort, skal vi gjennomføre selve spillet. Vi kan kode dette under telleren, men vi kan også flytte det til en egen funksjon, spill, for å gjøre koden mer oversiktlig. Funksjoner finner vi under Avansert i makecode.
Opprett en ny funksjon som heter spill. I denne funksjonen begynner vi med å trekke et tilfeldig tall mellom 1 og 3, og legge det i en variabel. Jeg har kalt variabelen mitt_spill.

Deretter sjekker jeg på verdiene, og viser fram passende ikoner som jeg kobler til de ulike tallene:

Fullfør koden slik stein er 1, saks er 2 og papir er 3. Husk å kalle funksjonen i koden for knapp A.

Prøv nå å spille stein-saks-papir. Når du trykker på A-knappen skal den telle ned fra 3-2-1 og deretter vise et tilfeldig ikon. Prøv å spille mot microbiten. Prøv også å spille mot en annen.
Del 2 – få to microbits til å spille mot hverandre.
Del 2 er litt mer komplisert, men artig å jobbe med. Dere må jobbe sammen 2 og 2, og ha hver sin microbit. Den ene skal være «master» og bygge videre på koden vi nettopp har laget. Den andre skal være «slave» og egentlig lystre den andre. Den skal også gjenbruke en del av koden fra tidligere.
Når vi trykker på A på masteren, skal den sende melding til den andre microbiten om at spillet er begynte. Deretter teller begge ned fra 3, og velger tilfeldig et tall fra 1-3 og viser ikonet som tilhører tallet på skjermen. Samtidig skal «slaven» sende informasjon om hvilket tall/ikon den fikk til «masteren», som deretter finner ut hvem som vant.
For å koble de to microbitene sammen, setter vi dem i samme gruppe. Dette gjøres under oppstart. Anbefaler at lærer deler ut grupper til elevene på forhånd.

Master sender avgårde teksten «Spill» via radio til en annen microbit i samme gruppe.

Slaven mottar denne meldingen, og gjennomfører spillet på samme måte som om det skulle vært trykket på knapp A.

Den kaller funksjonen «spill» på akkurat samme måte som den gjorde før vi koblet microbitene sammen, men når den er ferdig å spille, sender den beskjed til «masteren» hva resultatet ble.

Del 3 – kontrollere hvem som vant
Det er nå det begynner å bli gøy. Vi må lage et test, som starter når «masteren» mottar en verdi fra «slaven». Om vi hadde spilt med 2 mulige tegn, er det kun en vinnermulighet. Hadde vi spilt på stein og saks, knuser stein saks. Altså en vinnermulighet, to muligheter for uavgjort og en mulighet for tap.
Om 3 mulige tegn, er det flere mulige vinnermuligheter.
Stein knuser saks |
Saks klipper papir |
Papir omfavner stein |
Vi fortsetter å bruke 1 for stein, 2 for saks og 3 for papir når vi skal kontrollere hvem som vinner. Den første testen, er å teste om de to microbitene har samme verdi. Da blir spillet uavgjort, og vi setter et flagg til 0. Jeg kaller dette flagget for seier.

Om de ikke er like, må vi lage et system for testene. Disse testene kan settes opp på mange måter, og dette er kun eksempel.
Hvis «masteren» får 1 (stein), så vil «masteren» vinne om «slaven» får 2(saks), ellers vil han tape. Vi setter flagget til 1 om «masteren» vinner og -1 om det blir tap.

Videre må vi lage en test om «masteren» får 2 (stein) og om «mastere» får 3 (papir). Når testene er gjort, sendes verdien til den andre microbiten slik at den vet om den tapte eller vant.

På begge to viser vi så smilefjes om en vinner, surt fjes ved tap og strekmunn ved uavgjort.

På «slaven» skjer dette når den mottar en verdi fra «masteren».

Testing
Da er det på tide å foreta en del testing. Her må en være litt systematisk, og kanskje tegne opp alle mulige utfall for de to microbitene og mulige resultater, og deretter stryke ut etter hvert som en ser at de kommer fram og gir rett vinner.
Microbit 1 – master | Microbit 2 – slave | Resultat | Korrekt |
Uavgjort | |||
Uavgjort | |||
Uavgjort | |||
Master vinner | |||
Slave vinner | |||
Master vinner | |||
Slave vinner | |||
Master vinner | |||
Slave vinner |
Del 4 – Litt statistikk
La oss utvide litt og legge til noen tellere for å hente ut litt statistikk. Vi skal telle opp antall spill vi gjennomfører, og hvor mange ganger de ulike vinner. Vi trenger en variabel som heter antall_spill, som nullstilles når microbiten starter, og som endres med 1 hver gang det foretas et spill. Denne trenger vi på begge microbitene.

I tillegg trenger vi en variabel som heter antall_seire som tar vare på informasjon om hvor mange ganger vi vinner. Denne legger vi inn koden, hvor vi viser smilefjeset om vi vant.
Når vi trykker på knapp B, skal vi først vise antall kast, deretter antall serie og til slutt en frekvens for hvor ofte vi vinner.

Kanskje du kommer på noe annet vi kan telle opp og vise?
Del 5 – Utvide spillet til 4 mulige utfall
Hvor mange muligheter er det om vi har 4 mulige tegn? Om vi legger inn en øgle (som Sheldon gjør…) Først må vi bestemme hvordan øgle fungerer i spillet. En stein kan selvsagt knuse en øgle, en saks kan klippe en øgle, men øgle spiser selvsagt papir. Da får vi følgende tabell.
Stein knuser saks |
Saks klipper papir |
Papir omfavner stein |
Stein knuser øgle |
Saks klipper øgle |
Øgle spiser papir |
La oss utvide til 4 mulige utfall i spillet, der øglen er verdien 4. Finn en passende tegning til øglen (sjekk gjerne videoen for ideer), og legg inn i spillet. Utvid også testene i spillet til å finne vinnere.
Her må du legge inn en eller – logikk i testene, siden det plutselig er slik at en stein kan knuse både saks og øgle.

Del 6 – Teste spillet med 4 mulige utfall
Vi gjentar testen fra steg 3 og lager oss en tabell som dekker alle mulige utfall av spillet og tester om alt fungerer.
Del 7 – Utvide spillet til 5 mulige utfall
Vi er straks i mål med Big Bang Theory’s versjon av stein-saks-papir. Vi utvider med Spock (hentet fra TV-serien Star Trek). Men hvordan blir Spocks egenskaper i forhold til stein-saks-papir-øgle? Kanskje ikke helt logiske, men ifølge Sheldon blir det slik: Øglen kan forgifte Spock, Spock kan ødelegge saksen, papiret motbeviser Spock og Spock fordamper steinen.
Dette gir oss denne oversikten.
Stein knuser saks |
Saks klipper papir |
Papir omfavner stein |
Stein knuser øgle |
Saks klipper øgle |
Øgle spiser papir |
Øgle forgifter Spock |
Spock ødelegger saks |
Papir motbeviser Spock |
Spock fordamper stein |
La oss utvide til 5 mulige utfall i spillet, der Spock er verdien 5. Finn en passende tegning til Spock (sjekk gjerne videoen for ideer), og legg inn i spillet. Utvid også testene i spillet til å finne vinnere.
Del 8 – Teste spillet med 5 mulige utfall
Vi gjentar testen fra steg 6 og lager oss en tabell som dekker alle mulige utfall av spillet og tester om alt fungerer.
Del 9 – Litt statistikk
Med slike spill er det alltid interessant å se hvordan sannsynligheten for å vinne utvikler seg. Her er det jo tilfeldighetene som styrer, og ikke personene.
- Hvordan har vinnersannsynligheten endret seg fra 3, via 4 til 5 mulige utfall?
- Hvordan ser det ut teoretisk og hvordan ser det ut i praksis etter 10, 100, 1000 spill?
Kan du legge til datalogging slik at vi ser hvordan det utvikler seg?
Kodeeksempler:
Master: https://makecode.microbit.org/_f271wuE5F2va