佐野ベースレッスン風景【Minecraftプログラミング】座標の理解を深めよう!
この日のレッスンでは、Minecraft(マインクラフト)でプログラミングをする授業を行いました。
使用しているのは教育版の「Minecraft Education Edition」。
https://education.minecraft.net/ja-jp/homepage

マインクラフトの「座標」って?
マインクラフトでプログラミングをしたりコマンドを使ったりするときに、「座標」を使って場所を指定することが多いので、このレッスンでは座標について理解を深めてもらうため、まず、指定した場所にブロックを置いてみる練習から始めました。
今回は「自分が今いる場所から見て、どの場所にブロックを置くか?」という座標の指定のやり方をしていきます。このやり方を相対指定と呼びます。
絶対指定(その場所の座標を決めうちで指定)をする方法もありますが、相対指定は、自分が今いる場所から見た座標を指定できるので、見た目にもわかりやすいですね。
マインクラフトでの座標の指定は、自分が東を向いている時の、前後(たて)、高さ、左右(横)を数値で指定します。
ちなみに、マイクラの世界での東西南北を知るには、ヒマワリの花を植えるとわかりやすいです。

マイクラの世界では、ヒマワリの花は東を向いて咲くので……

上の画像のような状態ですと、自分(のプレイヤー)は東を向いて立っている、ということになります。
東を向いて立っている状態で、たとえばコードビルダーに下図のように入力して……


チャットコマンドを実行すると……

自分の立っている場所からみて、
・縦方向(前)に5ブロック
・高さ(上方向)に2ブロック
・よこほうこう(みぎ)に3ブロック
・・・の位置に、ブロックが1こだけ置かれます。
講師の説明を聞きつつ、生徒さんたちにも同じようにやってもらいます。チャットコマンドの実行やコードビルダーを使ったプログラミングはもう手慣れたもので、みんなスムーズです。





さて、ここまでを踏まえて、今度は応用です。
「縦にブロックを3つ積み上げる」にはどうしたらいいかな? ということで、各自やり方を考えてもらいます。
「縦方向に3つ積み上げる」ということは、ブロックを置く命令を3回すること、座標を指定するとき、高さを表す数値を1ずつ変えることがポイントですね。



「あ、できた!」となったところで、もっと効率のいいコードの指定方法があることもおさえておきます。
さっきは、ブロックの場所を1個ずつ指定しましたが「どこの場所から、どこの場所までブロックを並べるか」をまとめて命令することもできます。
このように「始まり」の座標と、「終わり」の座標を指定してあげると……


さっきよりも簡単な指定方法で、同じことが実現できてしまいます。
大きな箱をつくってみよう
それでは同じ要領で「どこからどこまでブロックを並べるか」を指定して、大きな箱をつくってみます。
マイクラで建物を建築するとき、一個一個ブロックを積み上げていくのは時間がかかりますが、プログラミングを使えば、巨大な建築も一瞬でできてしまいます。
まずは、どこからどこまでの間に箱を作りたいか? を考え、実現するにはどんな数値を指定したらいいかをイメージしてもらいます。(頭の中だけで考えるのは大変なので、座標のマス目を書いた紙を使って考えてもらいました)
難しい!どういうこと!? という生徒さんには、下の図を見ながら、どんな数値を入れたらいいかを、講師と一緒に考えてみました。

たとえば、上のような箱を作りたい場合……
自分から見て 前2ブロック・高さ0ブロック・右に-10ブロック(つまり左に10ブロック) の地点から
自分から見て 前30ブロック・高さ10ブロック・右に10ブロック の地点 の範囲にブロックを並べれば良いわけです。
「この絵みたいにして、たとえば左下のブロックの座標と、右上のブロックの座標を決めてあげたら良さそうだよね?」と講師が言うと「あ!わかってきたかも!」とのこと。さすが!


「モード」の項目は「中空」を選択したので、中が空洞になっている箱になっています。
その後もみんな試行錯誤しつつ、いろんな大きさや素材で、思い思いの箱をつくってくれました。
言葉で説明されるだけだと、座標の概念はなかなか難しいですが、実際に手を動かしてやってみて、実行結果がすぐわかるのがマイクラのよいところです。
素材や大きさなどを変えて色々な箱をつくるのを試す生徒さんや、プログラミングで作った箱に手でアレンジを加えて凝った建築物や水槽などを作ってくれた生徒さんもいて、みんなの個性が出た楽しい授業になりました。






ひとつずつ作り上げていくマインクラフトの建築の楽しさはもちろんありますが、効率化を取り入れて楽しめるのもプログラミングの醍醐味ですね。
********************
ロボット・プログラミング教室ロボテックでは、子どもたちが興味を持つブロックという教材を通じて、強要されることなく自然な流れで課題を解決し、それを発表する、さらには他の人の意見に耳を傾けるという力を育んでいきます。
ロボテックでは、ロボットづくり・マインクラフトでゲームづくり の無料体験を行っております。
お気軽にお申し込みください!
無料体験のお申込みはこちら