デジタルこどもBASE特定非営利活動法人デジタルこどもBASE← 全50回の一覧
Unit 08第36〜40回

Lesson 36:開く・閉じる信号

「もし〜なら」を使い、今の状態や合言葉に応じて、メッセージやブロックを変える単元です。

🧠 この単元のゴール

条件が本当のとき・そうでないときの違いを予想し、反応する仕掛けをつくれる。

Lesson 36条件と反応

開く・閉じる信号

🎯 ミッション

同じ合言葉を入れるたび、緑と赤の信号を交互に出す。

🖼 完成イメージ

もし 条件 なら反応が変わる完成イメージ条件が本当かどうかで、結果を変えよう※条件による反応の違いを示すMinecraft風イメージです。

🌱 今回わかること

今の状態が「開いているか」で、次の反応を分ける条件

🧰 はじめる前の準備

前方に空いた場所を取り、同じチャットを何回入力したか数えよう。第38回は壁を用意し、入口を開ける場所を確認してから実行する。

🪜 つくり方

  1. 変数 isOpen を false で作る。
  2. 「もし isOpen なら」の上に赤、そうでなければ緑を置く。
  3. 最後に isOpen を反対の状態へ変える。
  4. signal を2回入力し、色とメッセージが交互になるか確かめる。

🔎 実行前に予想

条件は今、本当? どちらのメッセージ・ブロックが出る? 理由も言葉にしてみよう。

🧩 MakeCodeのブロック

MakeCodeブロックを読み込み中…
対応するTypeScriptコードを見る
let isOpen = false
player.onChat("signal", function () {
    if (isOpen) {
        blocks.place(REDSTONE_BLOCK, posCamera(0, 0, 4))
        player.say("とじています")
    } else {
        blocks.place(EMERALD_BLOCK, posCamera(0, 0, 4))
        player.say("ひらいています")
    }
    isOpen = !isOpen
})

✅ 成功の見分け方

1回目は緑、2回目は赤、3回目は再び緑になる。

🎮 1か所だけ改造

赤と緑のブロックを入れ替えると、信号の意味はどう変わる?

🆘 うまくいかないとき

困ったこと確かめること
いつも同じ反応になる条件の中の変数が、実行の最後で正しく変わっているか確認する。
門が開かない第38回は先に key、次に gate と入力したか確認する。
スタートできない第40回は先に ready を1回入力しているか確認する。

保護者・先生へ:「もし〜なら」の前に、今の状態を子どもに予想させます。正解・不正解より、理由を聞くことを大切にします。