【マイクラ】プログラミングで「照明が一気につくスイッチ」を作る!【メイクコード】
今回の内容
おすすめ記事
「レバーでオンオフできる照明」プログラムを作る

やっほー 春日部つむぎだよ

なのなのだ ずんだもんなのだ

部屋を明るくするために照明をつけるスイッチを作りたいんだけど、回路を置く場所もないし道具が足りなくてできないのだ…。

そんな時はプログラミングを使うと場所も道具も少なく済むよ!


そうなのだ?! それなら教えてほしいのだ!

それじゃあ『マイクラ』と『メイクコード』を準備してプログラミングを始めよう!
- 『MineCraft(マインクラフト)』はMicrosoftが提供しているサンドボックスゲームです。プレイヤーはブロックを積み上げて建物を作り上げたり、広い世界を冒険してモンスターと戦うことができます。メイクコードを使ってプログラミングをするためには統合版が必要です。
- 『MakeCode(メイクコード)』はMicrosoftが提供するオープンソースのプログラミング学習プラットフォームです。ブロックを使ったビジュアルコーディングとJavaScriptによるテキストコーディングの2種類のエディタを切り替えながら、プログラミングできます。
『マイクラ』で準備をしよう

まずは『マイクラ』の方準備をしていくね!

今回は「仕掛けの作成」と、「仕掛けの座標を確認」するよ!

今回はお家の作り方は解説しないから、みんなの好きな形で作っておいてね!
仕掛けを作ろう

まずは、照明をつけたい場所のブロックをお家に使っていない材質の物に変更してくれるかな?

わかったけど、どうしてなのだ?

今回のプログラムは「スイッチがオンなら指定したブロックを《海のランタン》に置き換えて、オフなら元に戻す」ように作るんだ

なるほどなのだ! さっそくお家の天井5カ所を《クォーツ》変更してきたのだ!


ありがとう! それじゃあ次はスイッチを作っていくね

「《粘着ピストン》、《レバー》、好きなブロック」を1つずつ用意してね

わかったのだ! 好きなブロックは《ダイヤモンド》を使うのだ!

準備ができたら、レバーを使うと粘着ピストンが動くようにブロックを置いていくよ

今回は入口の向かい側に置くけど、粘着ピストンが動けば置く場所はどこでもOK!


レバーを引いたときにピストンが飛び出したから大丈夫なのだ


これで仕掛けの作成は終わり! 次は座標を確認していくね!
仕掛けの座標を確認しよう

まずは、レバーを動かしたときに《ダイヤモンド》が来る座標を確認しよう
座標とはプレイヤーの場所を表すもの(足元の場所)です
『マインクラフト』では座標はx座標(東西)、y座標(高さ)、z座標(南北)の3つがあり、[x,y,z]の順番で表示されています。
「-」記号のついた数字は、ついていない数字の反対方向になる場所と覚えておきましょう!



僕の所だと[3,-59,-14]なのだ

確認できたね。 それじゃあ次は、家全体を範囲にするための座標を2つ調べていくね

1つめは、スイッチに近い角の下側の座標を確認してみて


1つめは[5,-61,-11]なのだ

2つめは、真反対の角の上側の座標を確認してくれるかな


2つめは[-5,-53,-3]なのだ

ここまでできたら準備完了! あとは『メイクコード』に切り替えてプログラミングしていくよ!
プログラミングをはじめよう
コードを準備しよう

それじゃあコードを準備していくね。今回は【《ブロック》が[~0,~0,~0]の地点に存在するか、確認する】【次の《ブロック》に置き換える】【ワールド[0,0,0]】【ずっと】【もし〈真〉なら~、でなければ~】を使うから準備しておいてね

コードは画面左にある項目のように分かれています。今回必要となるブロックと対応する項目は以下の通りです。
- ブロック ⇨ 【《ブロック》が[~0,~0,~0]の地点に存在するか、確認する】【次の《ブロック》に置き換える】
- ポジション ⇨ 【ワールド[0,0,0]】
- ループ ⇨ 【ずっと】
- 論理 ⇨ 【もし〈真〉なら~、でなければ~】

準備ができたからプログラミングを始めるのだ
コードを組み合わせていこう
メイクコードでは以下のようにブロックを組み合わせてプログラミングしていきます。
- 凹凸のついたブロックは組み合わせられます
- 入力・選択部分が丸い形やをしているものは同じ形のコードをはめ込めます
凹凸の付いたブロックを組み合わて作る大まかな動きと入力・選択欄を変更して詳細な動きを設定していくのが、プログラミングの基本となります。

まずは【ずっと】と【もし〈真〉なら~、でなければ~】を組み合わせよう

【もし〈真〉なら~、でなければ~】のコードは、〈真〉の部分に条件を付けてそれが正しいかどうかを判定するものです。
条件が正しい(真)なら組み合わさっているコードが動作し、条件が間違っている(偽)なら「でなければ」の部分が動作します。

それができたら、【もし〈真〉なら~、でなければ~】に条件をつけるね。 今回は「レバーを引いたときに《ダイヤモンド》がワールドの決まった位置にあるかないか」を条件にするね。

あるかないかを判定するには【《ブロック》が[~0,~0,~0]の地点に存在するか、確認する】を使うのだ
【《ブロック》が[~0,~0,~0]の地点に存在するか、確認する】のコードは、指定したブロックが入力した座標にあるかを判別するものです。
単体では使えず他のコードと組み合わせて使用します。

今回はワールド座標で場所を確認するから、【ワールド[0,0,0]】と組み合わせて使おう
普通の座標指定([~0,~0,~0]表記)では自分が今いる位置が基準になり、ワールド座標指定([0,0,0]表記)ではそのワールドの座標が基準になるという違いがあります

それと、他にもワールド座標を使う所があるからあと2つ複製しておいてくれるかな?

わかったのだ。 複製はコードを右クリックして出てくるメニューからできるのだ


複製ができたから【《ブロック》が[~0,~0,~0]の地点に存在するか、確認する】に組み合わせてから、【もし〈真〉なら~、でなければ~】に組み合わせるのだ


あとは、ブロックを《ダイヤモンド》にして、さっき調べた座標[3,-59,-14]を入力すれば条件は完成なのだ!


次は照明になるブロックを置くプログラムだね!

まずは、さっき複製した2つの【ワールド[0,0,0]】コードを【次のブロックに置き換える】に組み合わせるよ


次は今できたプログラムを複製するんだけど、複製すると入力している座標とかもそのままコピーされるから、先に入力しておこう!

それじゃあ、始まりの範囲に[5,-61,-11]を、終わりの範囲に[-5,-53,-3]を入力するのだ


そこまでできたら、「置く」ブロックと「置き換えられる」ブロックを設定していくね

置くブロックは「次のブロックに置き換える」のところにあるブロックのアイコンで、置き換えられるブロックは「置きかえるブロック」のところにあるブロックのアイコンだよ

今回は「《クォーツ》を《海のランタン》に置きかえる」のと「《海のランタン》を《クォーツ》に置きかえる」の2種類が必要だよ


どっちも「置きかえる」って書いてるからややこしいのだ…

たしかにそうだよね…。 ただこれはもう「置きたいブロックは上側」って覚えるしかないかな…。

まぁ仕方がないのだ…。 とにかく、2種類作るのだ


できたのだ。 これを【もし〈真〉なら~、でなければ~】と組み合わせるのだね!

そうだね。 今回は「《ダイヤモンド》が指定した座標にある」なら「《クォーツ》を《海のランタン》に置き換える」んだったよね

だったら、置き換えの上側ブロックが《海のランタン》の方を条件をつけた部分に、上側が《クォーツ》の方を「でなければ」のところに組みあわせて…


これで完成なのだ!

それじゃあ実際にプログラムを動かしてみよう!

動かすには右下のスタートボタンを押して、ボタンの色が緑色から赤色になったら準備完了!


あとは『マイクラ』でプログラムを動かすために決めた条件の行動をすればOK!

動かす前にはプログラムが合っているか最終確認しておくのだ!
プログラムを動かそう!

スイッチのオンオフを切り替えてプログラムを動かしてみるのだ

「レバーを下すと電気がついて、上げると電気が消える」なら今回の目標は達成だね!


大丈夫だったのだ!
さいごに

おつかれさま! 今回は「レバーでオンオフできる照明」プログラムを覚えたね!
- ブロックの置き換え方を覚えておこう!
- プログラムを動かす条件の作り方を覚えておこう!
- ブロックが指定の座標にあるかを確認する方法を覚えておこう!

部屋が明るくなって本も読みやすくなったのだ!

今回は置き換えの範囲をお家全体にしているから、《クォーツ》や《海のランタン》を使うときは注意してね!

最後に練習問題を用意してみたから、よかったら挑戦してみてね!
プログラムを変更してみよう!
問題1

今回作ったレバーの仕掛けの場所を入り口側に変更して、プログラムが動くようにしよう! もし初めに入り口側に作っていたら、向かい側に変更してね!

位置を変えた後は《ダイヤモンド》の座標を再確認しよう!
問題2

照明のブロックを《グロウストーン》と《岩盤》に変更して、スイッチがオフの時に《グロウストーン》に置き換えるようにしてみよう!

天井に置いているブロックも変更が必要なことに注意しよう!
問題3

問題2で作ったプログラムの置き換えの範囲を家全体から天井だけに変更してみよう!

部屋の中に《グロウストーン》を置いて、置き換わらないか確認しよう!