Lesson 38:かぎで開く門
「もし〜なら」を使い、今の状態や合言葉に応じて、メッセージやブロックを変える単元です。
🧠 この単元のゴール
条件が本当のとき・そうでないときの違いを予想し、反応する仕掛けをつくれる。
かぎで開く門
key を先に入力したときだけ、gate で2ブロック高の入口を開ける。
🖼 完成イメージ
※条件による反応の違いを示すMinecraft風イメージです。
🌱 今回わかること
「かぎを持っている」という状態を条件に使う方法
🧰 はじめる前の準備
前方に空いた場所を取り、同じチャットを何回入力したか数えよう。第38回は壁を用意し、入口を開ける場所を確認してから実行する。
🪜 つくり方
- 前方に高さ2以上の壁を用意する。
- hasKey を false で作り、key のとき true にする。
- gate の中で、hasKey なら下と上を空気にする。
- 先に gate、次に key → gate の順で試し、違いを見る。
🔎 実行前に予想
条件は今、本当? どちらのメッセージ・ブロックが出る? 理由も言葉にしてみよう。
🧩 MakeCodeのブロック
MakeCodeブロックを読み込み中…
対応するTypeScriptコードを見る
let hasKey = false
player.onChat("key", function () {
hasKey = true
player.say("かぎを見つけた!")
})
player.onChat("gate", function () {
if (hasKey) {
blocks.place(AIR, posCamera(0, -1, 4))
blocks.place(AIR, posCamera(0, 0, 4))
player.say("門が開いた!")
} else {
player.say("まだかぎがないよ")
}
})✅ 成功の見分け方
key の前は開かず、key の後は中央に高さ2の空きができて通れる。
🎮 1か所だけ改造
入口を右へ1マス動かすには、空気にする左右の数をどう変える?
🆘 うまくいかないとき
| 困ったこと | 確かめること |
|---|---|
| いつも同じ反応になる | 条件の中の変数が、実行の最後で正しく変わっているか確認する。 |
| 門が開かない | 第38回は先に key、次に gate と入力したか確認する。 |
| スタートできない | 第40回は先に ready を1回入力しているか確認する。 |
保護者・先生へ:「もし〜なら」の前に、今の状態を子どもに予想させます。正解・不正解より、理由を聞くことを大切にします。
