Level 2PXT: Stein, saks, papir

Skrevet av: Bjørn Hamre, Julie Christina Revdahl

Oversatt av: Stein Olav Romslo

Kurs: Microbit
Tema: Elektronikk, Blokkbasert, Spill
Fag: Matematikk, Programmering
Klassetrinn: 5.-7. klasse, 8.-10. klasse, Videregående skole
Bilde av BokmålPå Bokmål

Introduksjon

Her skal du lære å programmere micro:biten slik at du kan spele stein, saks, papir med den eller mot den.

Steg 1: Velje tilfeldig tal

Du skal få micro:biten til å velje eit tilfeldig tal når du ristar på den. For at du skal kunne bruke dette talet seinare, så må du lagre talet i ein variabel.

checkSjekkliste

  • let trekk = 0
    input.onGesture(Gesture.Shake, function () {
      trekk = Math.randomRange(0, 4)
      basic.showNumber(trekk)
    })
    

flagTest prosjektet

Det er to ulike måtar du kan reste micro:bit-program på:

  • Sidan koden din skal reagere når du ristar på micro:biten kan du simulere dette ved å klikke på den kvite prikken til venstre for teksten SHAKE på micro:bit-simulatoren. Det tilfeldige talet som vart valt skal visast på skjermen til micro:bit-simulatoren. Prøv fleire gonger og sjå at talet forandrar seg.

  • No blir det lasta ned ei fil som heiter stein-saks-papir.hex til datamaskina di. Samstundes får du opp eit vindauge som seier at du må flytte fila til MICROBIT-disken. Viss du treng hjelp kan du spørje ein rettleiar.

Steg 2: Vis det valte trekket

Micro:biten skal vise om det er stein, saks eller papir som vart valt.

checkSjekkliste

  • input.onGesture(Gesture.Shake, function () {
      trekk = Math.randomRange(0, 2)
      basic.showNumber(trekk)
      if (trekk == 0) {
          basic.showLeds(`
              . . # . .
              . # # # .
              # # # # #
              . # # # .
              . . # . .
              `)
      }
    })
    

flagTest prosjektet

No skal du teste programmet ditt ved å trykkje på den kvite SHAKE-knappen.

Steg 3: Vise saks

Teikn saks når talet 1 blir valt.

checkSjekkliste

  • input.onGesture(Gesture.Shake, function () {
        trekk = Math.randomRange(0, 2)
        basic.showNumber(trekk)
        if (trekk == 0) {
            basic.showLeds(`
                . . # . .
                . # # # .
                # # # # #
                . # # # .
                . . # . .
                `)
        }
        if (trekk == 1) {
    
        }
    })
    
  • basic.showIcon(IconNames.Scissors)
    

flagTest prosjektet

Før du går vidare er det på tide å teste programmet att. Det skal vise biletet av ein stein viss 0 blir valt og saks viss det er 1. Framleis får du berre opp talet 2 viss det er det som er valt.

Steg 4: Vise papir

Å teikne papir når variabelen trekk har verdien 2 blir veldig likt det du gjorde for steinen tidlegare.

checkSjekkliste

let trekk = 0
input.onGesture(Gesture.Shake, function () {
  trekk = Math.randomRange(0, 2)
  basic.showNumber(trekk)
  if (trekk == 0) {
      basic.showLeds(`
          . . # . .
          . # # # .
          # # # # #
          . # # # .
          . . # . .
          `)
  }
  if (trekk == 1) {
      basic.showIcon(IconNames.Scissors)
  }
  if (trekk == 2) {
      basic.showLeds(`
          # # # # #
          # # # # #
          # # # # #
          # # # # #
          # # # # #
          `)
  }
})

flagTest prosjektet

No kan du teste programmet ditt. Det skal vise anten stein, saks eller papir avhengig av kva tal som blir valt når du trykkar på SHAKE-knappen.

Steg 5: Tøm skjermen mellom kvar spel

Når micro:biten skal velje eit tilfeldig tall, så kan det hende at det same talet blir valt to gonger på rad. Viss du ristar på micro:biten og den viser det same biletet som før, så er det vanskeleg å vite om du ikkje rista hardt nok eller om det same talet vart valt to gonger på rad.

checkSjekkliste

input.onButtonPressed(Button.A, function () {
    basic.clearScreen()
})

Vidare arbeid

Lisens: CC BY-SA 4.0

Forbedre denne siden

Funnet en feil? Kunne noe vært bedre?
Hvis ja, vennligst gi oss tilbakemelding ved å lage en sak på Github eller fiks feilen selv om du kan. Vi er takknemlige for enhver tilbakemelding!