De tien van Ramon:
Rock, Paper & Scissor met score module.

3 minute read

Hoe werkt een rock, paper & scissor?

One player versie

Rock, paper & scissor is een eenvoudig spelletje met een kleine waarheidstabel. Met behulp van drie keuzemogelijkheiden, altijd 1-1, kun je winnen, verliezen of een gelijkstand krijgen. De gelijkstand zie je in de tabel hieronder met een kruisje. Ook zie je in de tabel hieronder wat de score is met een winnaar/verliezer. De winnaar zie je in de tabel hieronder.

Β  Schaar Steen Papier
Schaar x Steen Schaar
Steen Steen x Papier
Papier Schaar Papier x

Hoe werkt de programmacode van rock, paper, scissor?

In dit experiment maken we weer gebruik van een variabele. Deze noemen we keuze. In deze variabele kunnen drie waardes voorkomen. 0, 1 en 2. Valt de random keuze op een van deze drie getallen dan wordt er een bijpassend plaatje getoond. Met behulp van de A button kun je een score bijhouden. Met behulp van button A+B wordt de score weer op nul teruggezet.

Stap 1 – vormgeven iconen

We beginnen met het maken van een steen. Maak met SHOW LEDS deze steen na. Daarna maken we ook papier en schaar.

![](/assets/images/wp-content/uploads/2017/03/RPS_-_pxt_microbit_org_πŸ”Š-2.png)Schaar
![](/assets/images/wp-content/uploads/2017/03/RPS_-_pxt_microbit_org_πŸ”Š-1.png)Papier
![](/assets/images/wp-content/uploads/2017/03/RPS_-_pxt_microbit_org_πŸ”Š.png)Steen

Stap 2 – If then keuzes

Na het maken van de bovenstaande figuren maken we nu de keuzemogelijkheid om na een willekeurig getal tussen de 0-2 (dus nul-één-twee) een figuur te laten zien. Bouw daarom onderstaande figuur na. Het werkt als volgt;

  • On shake
    • Hiermee gaat een proces starten bij het schudden van de Microbit.
  • Set KEUZE to Pick random 0 to 2
    • Met deze regel zetten we de variabele Keuze open voor drie verschillende mogelijkheden. Tussen de 0-2
  • If Keuze = 0 then
    • Met deze regel wordt een keuze gemaakt. Bij het getal 0 uit de variabele keuze wordt hieronder de steen zichtbaar.
![Stap 2 RPS](/assets/images/wp-content/uploads/2017/03/RPS_-_pxt_microbit_org_πŸ”Š-3.png)Stap 2 RPS

Stap 3 – een compleet programma

We maken met behulp van onderstaande de basis van rock, paper, scissor af. Bij een random waarde in de variabele KEUZE van 1 laat de Microbit papier zien. Bij het getal 2 een schaar.

![RPS - stap 3](/assets/images/wp-content/uploads/2017/03/RPS_-_pxt_microbit_org_πŸ”Š-4.png)RPS – stap 3

Stap 4 – score toevoegen

We hebben het nu een basisspelletje gemaakt. Nu volgt de verdieping. De score van het spel gaan we bijhouden. Bij het indrukken van Button A gaat de score met 1 omhoog. Button A+B tegelijkertijd ingedrukt geeft een score reset.

![Rock, paper & scissor. Stap 4](/assets/images/wp-content/uploads/2017/03/RPS_-_pxt_microbit_org_πŸ”Š-5.png)Rock, paper & scissor. Stap 4
![Rock, paper & scissor. Stap 4 score reset](/assets/images/wp-content/uploads/2017/03/RPS_-_pxt_microbit_org_πŸ”Š-6.png)Rock, paper & scissor. Stap 4 score reset

Uitdagingen Rock, paper & scissor

We hebben nu een 1 player game gemaakt. Compleet met score module! Kun je een score module maken voor een 2 player game? Hoe laat je zien dat een speler heeft gewonnen bij 5 punten? Dubbele uitdaging; kun je twee Microbits met elkaar laten communiceren? Volledige 2 player mode πŸ™‚

Met onderstaande programmacode kun je direct aan de slag!

<pre class="theme:1c-kod lang:js decode:true" title="De tien van Ramon: rock, paper & scissor">let Score = 0
let keuze = 0
input.onGesture(Gesture.Shake, () => {
    keuze = Math.random(3)
    if (keuze == 0) {
        basic.showLeds(`
            . . . . .
            . # # # .
            . # # # .
            . # # # .
            . . . . .
            `)
    }
    if (keuze == 1) {
        basic.showLeds(`
            # # # # #
            # . . . #
            # . . . #
            # . . . #
            # # # # #
            `)
    }
    if (keuze == 2) {
        basic.showLeds(`
            # # . . #
            # # . . .
            . . # . .
            # # . # .
            # # . . #
            `)
    }
})
input.onButtonPressed(Button.AB, () => {
    Score = 0
})
input.onButtonPressed(Button.A, () => {
    Score += 1
    basic.showNumber(Score)
})