まずBについて、私が探してきたサンプルプログラムはじゃんけんです。
マイクロビットを実際に授業で扱うときに、小学生が楽しめてわかりやすいゲームとしてじゃんけんだと考えました。
3つありますが、どれも振った際に画面にグーチョキパーのどれかがランダムで表示されるというものです。結果は同じですが①では乱数を用いて、②では変数を用いて、③は最も簡単でどちらも用いずにプログラミングされており、プログラミングが違っても同様の結果になるところが面白いと感じました。
振ってじゃんけん①
input.onGesture(Gesture.Shake, function () { if (randint(0, 2) == 0) { basic.showLeds(` . . . . . . # # # . # # # # # # # # # # . # # # . `) } else if (randint(0, 1) == 0) { basic.showLeds(` . # . # . . # . # . # # # # # # # # # # . # # # . `) } else { basic.showLeds(` . # # # . # # # # . # # # # # # # # # # . # # # . `) } })
5.解説
振ってじゃんけん②
let kazu = 0
input.onGesture(Gesture.Shake, function () {
kazu = randint(0, 2)
if (kazu == 0) {
basic.showLeds(`
. . . . .
. # # # .
# # # # #
# # # # #
. # # # .
`)
} else if (kazu == 1) {
basic.showLeds(`
. # . # .
. # . # .
# # # # #
# # # # #
. # # # .
`)
} else {
basic.showLeds(`
. # # # .
# # # # .
# # # # #
# # # # #
. # # # .
`)
}
})
振ってじゃんけん③
input.onGesture(Gesture.Shake, () => { if (Math.randomBoolean()) { basic.showLeds(` . . . . . . # # # . # # # # # # # # # # . # # # . `) } else if (Math.randomBoolean()) { basic.showLeds(` . # . # . . # . # . # # # # # # # # # # . # # # . `) } else { basic.showLeds(` . # # # . # # # # . # # # # # # # # # # . # # # . `) } })
5.解説
次にCについて、探してきたサンプルプログラムから自分もじゃんけんができるプログラムを作ろうと思いました。しかしサンプルのものはどれも結果がランダムに表示され、じゃんけんという遊びに含まれる相手の出す手を予想して自分の手を考えるという戦略性がないことに気付きました。そこで私は自分で出したい手を決められるようなじゃんけんのプログラムを考えました。
ハロウィンじゃんけん
input.onPinPressed(TouchPin.P0, function () {
basic.showLeds(`
. . . . .
# # # # .
# # # # .
# # # . .
. . . . .
`)
})
input.onButtonPressed(Button.A, function () {
basic.showLeds(`
. # # . .
. # # . .
. # # # .
. # # # .
. # # # .
`)
})
input.onPinPressed(TouchPin.P2, function () {
basic.showLeds(`
. # # # .
. # # # #
# # # # #
# # # # #
. # # # .
`)
})
input.onGesture(Gesture.Shake, function () {
basic.showLeds(`
. . . . .
# # # # .
# # # # .
# # # . .
. . . . .
`)
})
input.onButtonPressed(Button.AB, function () {
for (let index = 0; index < 1; index++) {
images.createImage(`
. # . # .
. # . # .
. # . # .
# . . . #
. . . . .
`).showImage(0)
images.createImage(`
. . . . .
. . . . .
# # . # .
. . # . .
. # . . .
`).showImage(0)
images.createImage(`
. # . . .
. # # # .
. # . . .
. # . . .
. . # # .
`).showImage(0)
images.createImage(`
. # . . .
# . # . .
. # . . .
. . . . .
. . . . .
`).showImage(0)
images.createImage(`
. . . . .
. . . . .
# # # # .
. . . . .
. . . . .
`).showImage(0)
images.createImage(`
. # . # .
. # . # .
. # . # .
# . . . #
. . . . .
`).showImage(0)
images.createImage(`
. # # # .
. # . # .
. # . # .
. # . # .
. # # # .
`).showImage(0)
images.createImage(`
. . # . .
. # # # .
. # . # .
. . . # .
. . # . .
`).showImage(0)
images.createImage(`
. . . . .
. . . # .
. . # . .
. # # . .
. . # . .
`).showImage(0)
images.createImage(`
. . . . .
. . . . .
. # . # .
. . . # .
. # # . .
`).showImage(0)
basic.showLeds(`
. # # # .
# . # . #
# # # # #
. # # # .
. # # # .
`)
break;
}
})
input.onButtonPressed(Button.B, function () {
basic.showLeds(`
. # # # .
. # # # #
# # # # #
# # # # #
. # # # .
`)
})
input.onPinPressed(TouchPin.P1, function () {
basic.showLeds(`
. # # . .
. # # . .
. # # # .
. # # # .
. # # # .
`)
})
for (let index = 0; index < 1; index++) {
images.createImage(`
. # . # .
. # . # .
. # . # .
# . . . #
. . . . .
`).showImage(0)
images.createImage(`
. . . . .
. . . . .
# # . # .
. . # . .
. # . . .
`).showImage(0)
images.createImage(`
. # . . .
. # # # .
. # . . .
. # . . .
. . # # .
`).showImage(0)
images.createImage(`
. # . . .
# . # . .
. # . . .
. . . . .
. . . . .
`).showImage(0)
images.createImage(`
. . . . .
. . . . .
# # # # .
. . . . .
. . . . .
`).showImage(0)
images.createImage(`
. # . # .
. # . # .
. # . # .
# . . . #
. . . . .
`).showImage(0)
images.createImage(`
. # # # .
. # . # .
. # . # .
. # . # .
. # # # .
`).showImage(0)
images.createImage(`
. . # . .
. # # # .
. # . # .
. . . # .
. . # . .
`).showImage(0)
images.createImage(`
. . . . .
. . . # .
. . # . .
. # # . .
. . # . .
`).showImage(0)
images.createImage(`
. . . . .
. . . . .
. # . # .
. . . # .
. # # . .
`).showImage(0)
basic.showLeds(`
. # # # .
# . # . #
# # # # #
. # # # .
. # # # .
`)
break;
}
まず起動したときにハッピーハロウィン💀と表示されます。そこから振るか端子0に触れたときにはグー、ボタンAを押すか端子1にふれたときにはチョキ、ボタンBを押すか端子2に触れたときにはパーが表示されるようにプログラミングしました。それぞれの手を表示するパターンが2種類ずつあるのは、じゃんけんの戦略性を重視して押す場所や動作で自分の手が相手に伝わることをさけるためです。またボタンA+Bでハッピーハロウィン💀の表示を出せるので、児童同士で実践させる際に挨拶として表示させることができます。
ブロックではなく,コードでプログラミング!? 児童同士の実践までを展望しているとは!さすが先輩!