Tečaj F ‒ Kondicionali 2 ‒ Kondicionali s igrom Kamen, škare, papir

Ova druga lekcija o kondicionalima će se baviti kompleksnijim naredbama 'if'.

  • Computer science
  • conditionals
Print lesson
  • Starosna dob 10+
  • 65+ minute
  • JavaScript Blocks

Uvod

Prva lekcija u ovim serijama o kondicionalima 'KONDICIONALI S PROGNOZOM VREMENA', usmjerena je na osnove logičkog bloka 'if...then...else'. Ako još niste savladali tu lekciju ili učenici s njom imaju poteškoća, pokušajte ponovo savladati taj materijal.

Naša druga lekcija će se baviti kompleksnijim naredbama 'if'. To nam omogućuje da testiramo više od dva ishoda. Učinit ćemo to igrajući kamen, škare, papir pomoću micro:bita. Do kraja lekcije ćemo imati radnu verziju igre koja čak pamti rezultate!

Naše micro:bit lekcije prilagođene su za primjenu znanja dobivenih iz Code.org osnova računalne znanosti (Code.org CS Fundamentals). Prije nego što učenici počnu s ovim lekcijama, potičemo ih da, kao preduvjet, prvo završe sve gradivo iz Osnova računalne znanosti. Učenici bi trebali biti upoznati s kondicionalima iz Code.org osnova računalne znanosti.

Vodič za nastavnike

Otvorite

Aktivnost

Ono što ćeš trebati

  • 1 − micro:bit
  • 1 − USB kabel
  • 1 − pakiranje AAA baterija (nije obvezatno)
  • 2 − pakiranje AAA baterija (nije obvezatno)

Dokumentacija

if (true) { 

} else if (false) { 

} else { 

}

if

Uvjetno pokreni kôd s ovisno o tome je li Booleov uvjet istinit ('true') ili netočan ('false').


let item = 0 
item = 0
            

setItem

Upotrijebi znak jednakosti kako bi varijabla pohranila broj ili 'string' koji si naredio.

let item = Math.random(5)

random

Vrati pseudoslučajni broj između 0 i ograničenja

basic.showIcon(IconNames.Heart)

showIcon

Prikazuje odabranu ikonu na LED zaslonu

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

onShake

Pokreni upravljač događajima 'handler' (dio programa koji će se pokrenuti kada se nešto dogodi). Ovaj upravljač (handler) radi kada napravite neku gestu (na primjer, kada protreseš micro:bit).

4 koraka

Vodič za vježbu

Za micro:bit ćemo napraviti online upute ili kôd. Potom, idi na: https://makecode.microbit.org


let RandomNumber = 0
input.onGesture(Gesture.Shake, () => {
    RandomNumber = Math.random(3)
    if (RandomNumber == 0) {
        basic.showIcon(IconNames.SmallSquare)
    } else if (RandomNumber == 1) {
        basic.showIcon(IconNames.Square)
    } else {
        basic.showIcon(IconNames.Scissors)
    }
})
input.onButtonPressed(Button.A, () => {

})
input.onButtonPressed(Button.B, () => {

})
        

Micro:bit pokazuje ikone: kamen, papir ili škare kada se protrese ('on shake'). Snažno protresi micro:bit na simulatoru ili pritisni tipku 'shake' za pokretanje stanja. Trebao bi vidjeti ikonu koja se prikazuje nakon što ga protreseš.

Treskanje kaže micro:bitu da slučajno odabere 0, 1 ili 2.

Donijet ćemo odluke na temelju vrijednosti.

  • if (RandomNumber = 0) >> show rock (pokaži kamen)
  • if (RandomNumber = 1) >> show paper (pokaži papir)
  • if (RandomNumber = 2) >> show scissors (pokaži škare)

NAPOMENA: Neiskorišteni blokovi na dnu i pored kôda su namijenjeni za upotrebu u izazovima.

Gotov kôd je dostupan ovdje.

Izazovi

Izazov 1

Možeš li pratiti koliko si puta pobijedio micro:bit?

Trik: Postavi svoje blokove u upravljač događajima 'event handler for' kada se pritisne tipka A. Trebat ćeš inicijalizirati (kreirati) varijablu 'in the' na početku događaja 'event handler' kako bi pohranio svoj rezultat.

Pogledaj kôd

let Score = 0
let RandomNumber = 0
input.onGesture(Gesture.Shake, () => {
    RandomNumber = Math.random(3)
    if (RandomNumber == 0) {
        basic.showIcon(IconNames.SmallSquare)
    } else if (RandomNumber == 1) {
        basic.showIcon(IconNames.Square)
    } else {
        basic.showIcon(IconNames.Scissors)
    }
})
input.onButtonPressed(Button.A, () => {
    Score += 1
})
input.onButtonPressed(Button.B, () => {

})
Score = 0
          

Gotov kôd je dostupan ovdje.

Izazov 2

Što ako izgubiš? Možeš li oduzeti od svog rezultata kada izgubiš?

Trik: Postavi svoje blokove u upravljač događajima 'event handler for' kada se pritisne tipka B.

Pogledaj kôd

let Score = 0
let RandomNumber = 0
input.onGesture(Gesture.Shake, () => {
    RandomNumber = Math.random(3)
    if (RandomNumber == 0) {
        basic.showIcon(IconNames.SmallSquare)
    } else if (RandomNumber == 1) {
        basic.showIcon(IconNames.Square)
    } else {
        basic.showIcon(IconNames.Scissors)
    }
})
input.onButtonPressed(Button.A, () => {
    Score += 1
})
input.onButtonPressed(Button.B, () => {
    Score += -1
})
Score = 0
          

Gotov kôd je dostupan ovdje.

Izazov 3

Kako možemo prikazati naš rezultat?

Trik: Postavi svoje blokove u upravljač događajima 'event handler for' kada se pritisnu tipke A+B.

Pogledaj kôd

let Score = 0
let RandomNumber = 0
input.onGesture(Gesture.Shake, () => {
    RandomNumber = Math.random(3)
    if (RandomNumber == 0) {
        basic.showIcon(IconNames.SmallSquare)
    } else if (RandomNumber == 1) {
        basic.showIcon(IconNames.Square)
    } else {
        basic.showIcon(IconNames.Scissors)
    }
})
input.onButtonPressed(Button.A, () => {
    Score += 1
})
input.onButtonPressed(Button.B, () => {
    Score += -1
})
input.onButtonPressed(Button.AB, () => {
    basic.showNumber(Score)
})
Score = 0
          

Gotov kôd je dostupan ovdje.

Samostalna vježba

Napravi svoju vlastitu kocku sa šest strana pomoću micro:bita i izradi avanturističku igru na ploči. Možeš prilagoditi izgled ove kocke. Ako dobiješ jedan, što se događa?

Primjer ‒ Ako (If) dobiješ jedan, možeš pronaći neko blago.

Trik: Trebat ćeš povećati RandomNumber i napraviti veći blok 'if'.

Kviz

Posluži se ovim pitanjima kako bi razmotrio aktivnost i izazove.

Pitanje 1

Napiši dio kôda u radnji koja nasumično odabire broj od 0 do 1 i pohranjuje vrijednost unutar varijable koja se naziva 'RandomNumber'.

Prikaži odgovor

NAPOMENA: Ističemo programski blok koji pohranjuje vrijednost RandomNumber unutar varijable koja se naziva RandomNumber u žutoj boji. Drugi dio kôda nasumično vraća broj od 0 do 3.

Pitanje 2

Ako je varijabla 'RandomNumber' jednaka 0, koja će se ikona pojaviti?

Prikaži odgovor

Kôd će pokazati Kamen.

Pitanje 3

Ako varijabla 'RandomNumber' NIJE jednaka 0, koje se ikone mogu pojaviti?

Prikaži odgovor

Kôd će pokazati Škare i Kamen.

Pitanje 4

Ako varijabla 'RandomNumber' NIJE jednaka 0 ili 1, koja će se ikona pojaviti?

Prikaži odgovor

Kôd će pokazati Škare.