まず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(` . # # # . . # . # .