マイクラで『変数を使って建築する』プログラムを作ってみよう

目次

関連記事

変数を使ってブロックを置くプログラムを作る

春日部つむぎキャラアイコン
春日部つむぎ

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

ずんだもんキャラアイコン
ずんだもん

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

ポイント!

変数とは、「数字や文字などのデータ保存しておける入れ物のこと」です。

保存しているデータは、設定するときに作動させたプログラム以外でも使用できます。


1つの変数に保存できるデータは1つで既に保存されている場合は上書きされますが、変数はいくつも作ることができるので必要な数だけ作りましょう。

ずんだもんキャラアイコン
ずんだもん

変数にもかなり慣れてきたのだ。 そろそろ建築をしてみたいのだ。

春日部つむぎキャラアイコン
春日部つむぎ

いいね! それなら、今回は「変数を使って建築する」のを目標にしようか!

春日部つむぎキャラアイコン
春日部つむぎ

使うのは『マインクラフト』と『メイクコード』の2つだよ! みんなも準備しておこう!

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

目印を置こう

基準の場所

春日部つむぎキャラアイコン
春日部つむぎ

まずは基準となる場所に目印をつけておこう。 今回は足元に《ガラス》ブロックを置いておこう。

春日部つむぎキャラアイコン
春日部つむぎ

この基準の場所を変数に保存して建築していくんだ

ずんだもんキャラアイコン
ずんだもん

基準の場所は決まっているのだ?

春日部つむぎキャラアイコン
春日部つむぎ

プログラムを作りやすくするために基準を決めているだけだから、どこでも大丈夫だよ!

ずんだもんキャラアイコン
ずんだもん

それなら、今立っている場所にしておくのだ。

建築の開始場所

春日部つむぎキャラアイコン
春日部つむぎ

次は建築を始める場所を決めるね。

ずんだもんキャラアイコン
ずんだもん

建築を始める場所なのだ?

春日部つむぎキャラアイコン
春日部つむぎ

そうだよ。 変数を使った基準の位置をそのまま使うと、その場所から建築が始まっちゃうんだ。

春日部つむぎキャラアイコン
春日部つむぎ

そうすると自分のキャラクターが埋まっちゃったりして使いづらくなるから、「自分の場所の2ブロック前から作る」みたいにしておくんだ。

ずんだもんキャラアイコン
ずんだもん

そのための目印なのだね。 それなら、今回は4ブロック前から作り出すようにするのだ。

ずんだもんキャラアイコン
ずんだもん

x座標の+(プラス)方向4つ分前に目印をおくのだ

ポイント!

「+(プラス)」と「-(マイナス)」を計算する時は引き算で、「-(マイナス)」と「-(マイナス)」の計算は足し算になります。
例1:「+100」と「-200」の場合、「100-200=-100」
例2:「-100」と「+200」の場合、「200-100=100」
例3:「-100」と「-200」の場合、「-(100+200)=-300」

春日部つむぎキャラアイコン
春日部つむぎ

建築範囲の目印は《赤のステンドグラス》にしておこうか

建築の範囲

ずんだもんキャラアイコン
ずんだもん

あとは家の大きさを決めるのだ

春日部つむぎキャラアイコン
春日部つむぎ

入り口を《ガラス》を置いた方向にするとしたら、さっき置いた開始位置から奥にするほど部屋の奥行きが大きくなりそうだね

ずんだもんキャラアイコン
ずんだもん

そしたら、開始位置から7ブロック分進んだ場所に目印をおくのだ

春日部つむぎキャラアイコン
春日部つむぎ

基準位置から数えたら11ブロック先ってことだね

春日部つむぎキャラアイコン
春日部つむぎ

それじゃあ次は横幅を決めようか

ずんだもんキャラアイコン
ずんだもん

横幅はz座標の方向を見ればいいのだ。

ずんだもんキャラアイコン
ずんだもん

こっちは+方向に10ブロック分くらいにしておくのだ

春日部つむぎキャラアイコン
春日部つむぎ

これで縦の長さと横の長さが決まったから、あとは高さなんだけど…

春日部つむぎキャラアイコン
春日部つむぎ

実は今回のプログラムなら高さ用の目印は必要ないから、高さだけ決めておこう!

ずんだもんキャラアイコン
ずんだもん

高さ用の目印は置くのが面倒だったから嬉しいのだ! 高さは+5ブロック分にするのだ!

ずんだもんキャラアイコン
ずんだもん

これで目印が全部置けたから、プログラミングを始めるのだ

プログラミングをはじめよう

変数プログラムを作ろう

ずんだもんキャラアイコン
ずんだもん

まずは変数を使って自分の位置座標を保存するプログラムを作るのだ!

春日部つむぎキャラアイコン
春日部つむぎ

そうだね! ただ、ここで説明すると少し長くなりそうだから、『マイクラで『座標を変数として保存』してみよう』の記事を参考にして作って来てね!

春日部つむぎキャラアイコン
春日部つむぎ

それができたら建築プログラムを作っていこう!

コードを準備しよう〜建築編〜

春日部つむぎキャラアイコン
春日部つむぎ

今回使うコードは【ブロックを並べる】【ワールド[0,0,0]】【0+0】と【x】の変数だよ

コードは画面左にある項目のように分かれています。今回必要となるブロックと対応する項目は以下の通りです。

  • ブロック ⇨ 【ブロックを並べる】
  • ポジション ⇨ 【ワールド[0,0,0]】
  • 計算 ⇨ 【0+0】
  • 変数 ⇨ 【x】
春日部つむぎキャラアイコン
春日部つむぎ

準備が出来たら、【x】と【0+0】を組み合わせよう

ポイント!

【0+0】コードは、指定した数を計算するコードです。
このコードを複数組み合わせればいくつも計算できるほか、変数の計算をすることもできます。

春日部つむぎキャラアイコン
春日部つむぎ

今作ったプログラムは、ある二つの数を計算するプログラムなんだ。 実際にどう使うかは後で説明するね

春日部つむぎキャラアイコン
春日部つむぎ

組み合わせられたら、そのプログラムを複製してy座標とz座標の分も準備しよう

ずんだもんキャラアイコン
ずんだもん

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

春日部つむぎキャラアイコン
春日部つむぎ

変数の変更は変数名の場所を押すとできるよ

ずんだもんキャラアイコン
ずんだもん

xyzの三種類の変数を使った計算プログラムができたのだ

春日部つむぎキャラアイコン
春日部つむぎ

ここまでできたら、このプログラムの説明をしておくね。

春日部つむぎキャラアイコン
春日部つむぎ

この変数を計算しているプログラムなんだけど、変数だけじゃなくて【0+0】と組み合わせて使うことで結果を簡単に変更することができるようになるんだよね

春日部つむぎキャラアイコン
春日部つむぎ

例えば、座標保存を使ったブロック設置プログラムを動作させるとして、保存した変数をそのまま使うとどこにブロックが置かれるかわかる?

ずんだもんキャラアイコン
ずんだもん

キャラクターの座標は立っている足元の場所を示しているから、足がある場所に置かれるのだ

春日部つむぎキャラアイコン
春日部つむぎ

その通り! それじゃあ、そのプログラムを使ってブロックを置く場所を胴体部分、つまり高さを1つ高くするとしたらどうしたらいいかな?

ずんだもんキャラアイコン
ずんだもん

えーっと、今胴体がある部分を足元にしないといけないから…

ずんだもんキャラアイコン
ずんだもん

1つブロックを置いてその上に乗ったりして足を1ブロック分高くしてから保存しないといけないのだ

春日部つむぎキャラアイコン
春日部つむぎ

そうなんだよ! でも、変更したい高さが1じゃなくて100とかだったら大変だよね

春日部つむぎキャラアイコン
春日部つむぎ

そういうときに変数計算ができるプログラムで「y+100」ってすると、「足元の座標から100高い場所」を示すことができるんだ!

ずんだもんキャラアイコン
ずんだもん

なるほどなのだ! つまり、今いる座標に足したり引いたりした数だけ場所をずらすことができるのだね!

春日部つむぎキャラアイコン
春日部つむぎ

そういうこと! ずらすときには座標の+(プラス)とー(マイナス)の方向に気を付けてね!

春日部つむぎキャラアイコン
春日部つむぎ

それじゃあ計算プログラムの仕組みもわかったと思うから、その3つのプログラムを【ワールド[0,0,0]】と組み合わせよう

【ワールド[0,0,0]】コードは、座標の指定をワールド座標基準にするものです。
ワールド座標にしていしない場合は自分の位置が基準になるので注意しましょう。

ずんだもんキャラアイコン
ずんだもん

組み合わせる場所に気を付けないといけないのだ

ずんだもんキャラアイコン
ずんだもん

座標の表記は[x,y,z]の順番になっているのだったね

春日部つむぎキャラアイコン
春日部つむぎ

組み合わせられたら、そのプログラムを複製して【ブロックを並べる】コードの座標部分2箇所に組み合わせてね

ずんだもんキャラアイコン
ずんだもん

2箇所に組み合わせるってことは、複製の数は1つだね

【ブロックを並べる】コードは、指定した座標の範囲にブロックを並べるコードです。

春日部つむぎキャラアイコン
春日部つむぎ

これで家の外側を作るプログラムの準備ができたよ。 同じように家の内側を作るからこのコードを複製しておこう

春日部つむぎキャラアイコン
春日部つむぎ

複製が出来たら並べるブロックの種類を変更しよう。 家の内側は《空気》ブロックで、外側は好きなブロックにしてね

ずんだもんキャラアイコン
ずんだもん

わかったのだ。 それなら《樺の木材》にするのだ

ずんだもんキャラアイコン
ずんだもん

ブロックの種類変更はブロックのアイコンを押すとできるのだ

春日部つむぎキャラアイコン
春日部つむぎ

変更出来たら、初めに作った変数プログラムと組み合わせていくね。

春日部つむぎキャラアイコン
春日部つむぎ

まずは変数保存プログラムの下に家の外側プログラムを組み合わせて、その下に内側プログラムを組み合わせてね

ポイント!

【ブロックを並べる】コードは指定した範囲すべてにブロックを並べます。
そのため、家を建築する場合は「家の外側作成」→「内側を《空気》ブロック化」の順にプログラミングする必要があります。

ずんだもんキャラアイコン
ずんだもん

プログラムは上から動作するから順番はとても大切なのだね!

春日部つむぎキャラアイコン
春日部つむぎ

順番が違うと作りたいものと違うものができちゃうかもしれないからね

春日部つむぎキャラアイコン
春日部つむぎ

ここまでできたら、残りは座標の指定だね!

建築プログラムを作ろう

春日部つむぎキャラアイコン
春日部つむぎ

まずは、今回ブロックを置く予定の場所を再確認しておこうか

ずんだもんキャラアイコン
ずんだもん

リストにまとめておくのだ

  • 開始地点:基準からx座標4ブロック分前
  • 家の奥行:開始地点からx座標7ブロック分前(基準からx座標11ブロック分前)
  • 家の横幅:開始地点からz座標10ブロック分
  • 家の高さ:開始地点からy座標5ブロック分。 ただし床作成のため足元の1ブロック分下から
春日部つむぎキャラアイコン
春日部つむぎ

まずは家の外側の「範囲の始まり」を順番に設定していくね。 x座標計算プログラムに「4」を足そう

春日部つむぎキャラアイコン
春日部つむぎ

これで開始地点が基準から4つ前になったんだ

ずんだもんキャラアイコン
ずんだもん

y座標も同じようにずらすのだ。 足元の一つ下から始めるから「ー1」を足すのだ

春日部つむぎキャラアイコン
春日部つむぎ

z座標の開始地点は基準から動かさなくていいから、そのままで大丈夫だよ

ずんだもんキャラアイコン
ずんだもん

これで「範囲の始まり」は大丈夫だから、次は「範囲の終わり」だけど…

ずんだもんキャラアイコン
ずんだもん

あ! ここでさっきのリストの数字が使えそうなのだ!

春日部つむぎキャラアイコン
春日部つむぎ

そうだね! じゃあ入力していってみようか

ずんだもんキャラアイコン
ずんだもん

x座標は開始地点から7ブロック前だから、「4+7=11」なのだ

ずんだもんキャラアイコン
ずんだもん

y座標は5ブロック分でz座標は10ブロック分だったから、それぞれ「5」と「10」を足すのだ

春日部つむぎキャラアイコン
春日部つむぎ

これで家の外側は完成だね!

ずんだもんキャラアイコン
ずんだもん

次は内側をつくるのだ!

春日部つむぎキャラアイコン
春日部つむぎ

まずは内側の範囲を考えてみようか。 「内側を空気化する」っていうことは、「外側すべてに1ブロック分だけ残す」ってことだよね

ずんだもんキャラアイコン
ずんだもん

そうだね

春日部つむぎキャラアイコン
春日部つむぎ

つまり「外側のすべての範囲を、家の内側に向けてに1つずらす」ってことなんだよ

春日部つむぎキャラアイコン
春日部つむぎ

少しややこしいよね。 でもこれを簡単に考える方法があって、まずは外側の範囲の計算部分を座標ごとに並べるんだ

ずんだもんキャラアイコン
ずんだもん

っていうことは、y座標だと「ー1」と「5」だから「ー1 0 1 2 3 4 5」って感じなのだ?

春日部つむぎキャラアイコン
春日部つむぎ

その通りだよ。 そしてこれのすべての方向から1つ分内側にずらすから、両端の数字の隣が内側範囲の始まりと終わりになっているんだ!

ずんだもんキャラアイコン
ずんだもん

ってことは始まりが「0」で終わりが「4」ってことなのだね!

春日部つむぎキャラアイコン
春日部つむぎ

バッチリだね! それじゃあほかの座標も同じように座標を見ていこう

ずんだもんキャラアイコン
ずんだもん

x座標は「4 5 6 ・・・ 9 10 11」だから、「5」と「10」だね

ずんだもんキャラアイコン
ずんだもん

z座標は「0 1 2 ・・・ 8 9 10」だから、「1」と「9」だね

春日部つむぎキャラアイコン
春日部つむぎ

これでプログラムが完成したよ!

ずんだもんキャラアイコン
ずんだもん

それなら動かしてみるのだ!

春日部つむぎキャラアイコン
春日部つむぎ

間違えても大丈夫だから落ち着いてやってね。入力ができたら右下のスタートボタンを押そう。ボタンの色が緑色から赤色になったら準備完了だよ

ずんだもんキャラアイコン
ずんだもん

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

動作確認!

ずんだもんキャラアイコン
ずんだもん

目印の上で『マイクラ』のチャットで「run」を送信するのだ

春日部つむぎキャラアイコン
春日部つむぎ

《赤のステンドグラス》を置いた範囲に家ができたら成功だよ!

ずんだもんキャラアイコン
ずんだもん

大丈夫だったのだ!

春日部つむぎキャラアイコン
春日部つむぎ

せっかくだから、このまま内装も作ってもう少し練習してみようか

本棚を置いてみよう

春日部つむぎキャラアイコン
春日部つむぎ

今回は壁際に本棚を置くプログラムを作ってみようか

ずんだもんキャラアイコン
ずんだもん

まずは目印を置いてみるのだ。 基準位置側の角に「高さ3、奥行4」で作ってみようと思うのだ

春日部つむぎキャラアイコン
春日部つむぎ

【ブロックを並べる】プログラムを複製して、座標を入力していこう。

春日部つむぎキャラアイコン
春日部つむぎ

ちなみに、複製したプログラムの座標を一度全部「0」に戻しておくとわかりやすくなると思うよ!

ずんだもんキャラアイコン
ずんだもん

まずはx座標なのだ。始まりの範囲は家の開始地点の一つ奥からだから「5」で終わりはそこから4ブロック分なのだ。

ずんだもんキャラアイコン
ずんだもん

数えるときには始まりの範囲も数えるから、「5 6 7 8」なのだ。 終わりの範囲は「8」なのだ

春日部つむぎキャラアイコン
春日部つむぎ

同じように、y座標は始まりが「0」で終わりが「2」だね

ずんだもんキャラアイコン
ずんだもん

最後のz座標は基準の一つ隣の列だけだから、始まりも終わりも「1」なのだ

春日部つむぎキャラアイコン
春日部つむぎ

ここまでできたら、ブロックの種類を《本棚》にしてプログラムを組み合わせよう

動かしてみよう!

ずんだもんキャラアイコン
ずんだもん

チャットで「run」を送信するのだ

春日部つむぎキャラアイコン
春日部つむぎ

家の建築と本棚の設置ができていたら成功だよ!

ずんだもんキャラアイコン
ずんだもん

本棚が置けているのだ!

さいごに

春日部つむぎキャラアイコン
春日部つむぎ

今回は「変数を使って建築する」プログラムが作れたね

ずんだもんキャラアイコン
ずんだもん

僕も自分の家を作ってみたのだ!

春日部つむぎキャラアイコン
春日部つむぎ

すごい! 物もたくさん置けてるし、もう変数を使った建築はばっちりみたいだね!

ずんだもんキャラアイコン
ずんだもん

みんなも変数を練習して、大きな家を作ってみてほしいのだ!

春日部つむぎキャラアイコン
春日部つむぎ

最後に練習問題を用意してみたから、よかったら挑戦してみてね!

プログラムを変更してみよう!

問題1

春日部つむぎキャラアイコン
春日部つむぎ

今回作った家の大きさを「x方向に4」「y方向に1」「z方向に5」ブロック分大きくしてみよう!

問題2

春日部つむぎキャラアイコン
春日部つむぎ

問題1で作った家を「x方向に5」「y方向に2」「z方向に7」ブロック分小さくしてみよう!

問題3

春日部つむぎキャラアイコン
春日部つむぎ

変数を使って入り口を作ってみよう! 入り口はどの建築プログラムで作ってもOKだよ!