Aktivnost Baci kocku

Napravi virtualnu kocku pomoću uređivača MakeCode

  • Get started
  • MakeCode
  • Inputs
  • Random
  • Variables
Print lesson
  • Starosna dob 8+
  • 30 minute
  • MakeCode Editor

Uvod

Ovaj projekt uvodi učenike u selektirano stanje IF...THEN...ELSE i kako kontrolirati pojedine LED diode.

Vodič za nastavnike

Otvorite Otvoreni materijali za nastavnike

Aktivnost

5 koraka

Prvi korak

Ovo je program koji omogućava korisniku da protrese micro:bit kako bi prikazao jednu stranu kocke. U uređivaču Make Code odaberi blokove 'input' iz izbornika naredbi i odaberi blok “shake”.


input.onGesture(Gesture.Shake, () => {
  
})
          

Jednom kada je na radnoj površini blok "on" se može podesiti na niz pokreta poput nagiba ulijevo ili udesno. Za ovaj projekt odabran je pokret "protresti".

Klikni na strelicu u bloku 'on shake' za promjenu geste

Drugi korak

Sada kada tvoj program reagira na ulaznu gestu 'shake' trebamo dodati kako da reagira. U blokovima varijabli dodaj blok "set item to".


let item = 0
input.onGesture(Gesture.Shake, () => {
    item = 0
})
          

Preimenuj varijablu u nešto prikladnije, poput “Roll”. Klikni na strelicu pored riječi 'item' i odaberi 'Rename variable'; pojavit će se prozorčić koji će ti omogućiti da promijeniš naziv varijable.

Klikni na strelicu za promjenu imena varijable
Upiši ime i klikni na 'ok' za promjenu imena varijable

Sada kada je kreirana varijabla koja se naziva “Roll” trebamo odabrati nasumičan broj između 1 i 6. Iz izbornika naredbi odaberi opciju “Math” i odaberi “pick random 0 to 10”

Povuci blok 'pick random' iz izbornika 'math'

Povuci blok “pick random” na radnu površinu i poveži ga s blokom “Set variable” zamjenjujući “0” s “1” i “10” sa “6”. Sada će program odabrati nasumičan broj između 1 i 6 svaki put kada se micro:bit protrese. Broj je pohranjen u varijabli "Baci kocku".


let roll = 0
input.onGesture(Gesture.Shake, function () {
    roll = Math.randomRange(1, 6)
})
          

Treći korak

Sada micro:bit treba prikazivati različite brojeve temeljene na varijabli "baci kocku". To je poznato kao selekcija. U ovom ćemo se slučaju koristiti odjeljkom IF...THEN...ELSE. Dodavanje selekcije na micro:bitu može se pronaći u izborniku naredbi pod opcijom Logic.

Povuci blok iz sekcije 'logic'

Dodaj logičku izjavu “IF THEN ELSE” i klikni tipku "+" da bi je uredio tako da ima više uvjeta.


let roll = 0
input.onGesture(Gesture.Shake, function () {
    roll = Math.randomRange(1, 6)
    if (true) {
      
    } else {
      
    }
})
          

Šest je mogućih opcija, treba dodati 4 izjave “else if”. Budući da postoji prva izjava “If” nakon čega slijede 4 izjave “else if” i konačna izjava “else”, to ukupno pokriva 6 opcija.


let roll = 0
input.onGesture(Gesture.Shake, function () {
    roll = Math.randomRange(1, 6)
    if (true) {
      
    } else if (false) {
      
    } else if (false) {
      
    } else if (false) {
      
    } else if (false) {
      
    } else {
      
    }
})
          

Četvrti korak

Sada trebamo napraviti logičku izjavu za izjavu IF koja se temelji na omogućavanju selekcije. Ponovo iz opcije “logic” u izborniku naredbi odaberi blok “equals”.

Povuci blok 'equals' iz izbornika 'logic'

Kada ga odabereš, povuci blok “equals” na blok izjave "IF".

Kako bi se osiguralo da micro:bit temelji izjavu IF na nasumičnom broju, treba provjeriti vrijednost pohranjenu u varijabli “Baci kocku”. Varijabla “Baci kocku” može se odabrati iz opcija varijabli unutar izbornika naredbi.

Povuci varijablu 'roll' iz izbornika 'variable'

Prva od 6 provjera koje se provode jest da je varijabla "Roll" jednaka 1. Postavi varijablu "Roll" unutar bloka “is equal to” (=).

Sada ovaj proces treba ponoviti za ostale 4 izjave “else if”. Desnim klikom na blok “equals” on se može duplicirati i prilagoditi za različite moguće vrijednosti.

Desni klik za kopiranje blokova

let roll = 0
input.onGesture(Gesture.Shake, function () {
    roll = Math.randomRange(1, 6)
    if (roll == 1) {
      
    } else if (roll == 2) {
      
    } else if (roll == 3) {
      
    } else if (roll == 4) {
      
    } else if (roll == 5) {
      
    } else {
      
    }
})
          

Peti korak

Zadnji dio programa je prikaz razičitih obrazaca za različita lica na kocki. Iz osnovnih naredbi u izborniku naredbi odaberi blok “show leds”.

Povuci blok 'show LEDs' iz izbornika 'basic'

Povuci blok “Show leds” na radnu površinu i postavi ga ispod prve izjave IF”. Klikom na tamno plave kvadrate možeš napraviti traženi uzorak umirućeg lica (LED diode 'on' prikazane su bijelom bojom). Za ovaj primjer obrazac za broj 1 je dovršen niže.

Središnja LED dioda je upaljena

Ovaj blok ponovo može biti dupliciran 5 puta za ostala lica na kocki dok sve opcije nisu dovršene. Gotov program je prikazan niže. Spremi projekt i preuzmi ga na micro:bit.


let roll = 0
input.onGesture(Gesture.Shake, function () {
    roll = Math.randomRange(1, 6)
    if (roll == 1) {
        basic.showLeds(`
            . . . . .
            . . . . .
            . . # . .
            . . . . .
            . . . . .
            `)
    } else if (roll == 2) {
        basic.showLeds(`
            . . . . .
            . . . # .
            . . . . .
            . # . . .
            . . . . .
            `)
    } else if (roll == 3) {
        basic.showLeds(`
            # . . . .
            . . . . .
            . . # . .
            . . . . .
            . . . . #
            `)
    } else if (roll == 4) {
        basic.showLeds(`
            . . . . .
            . # . # .
            . . . . .
            . # . # .
            . . . . .
            `)
    } else if (roll == 5) {
        basic.showLeds(`
            . . . . .
            . # . # .
            . . # . .
            . # . # .
            . . . . .
            `)
    } else {
        basic.showLeds(`
            . # . # .
            . . . . .
            . # . # .
            . . . . .
            . # . # .
            `)
    }
})
          

Izazov

Pokušaj dodati sljedeću funkcionalnost:

  • Dodaj animaciju takvu da se lica kocke kotrljaju.
  • Omogući korisniku da licima dodijeli broj, 6, 8 ili 12

Nauči više

Aktivnost "Istina ili izazov" koristi naredbu za pokret, LED zaslon i ponovo uvodi izjave IF, ali pokreće dvije programske petlje istodobno.

Selecting this opens external content from our support system, which adheres to their privacy policy.