作品づくりサポート
【MakeCodeシリーズ⑤】ピラミッドのつくり方

今回の記事について
前回のMakeCodeシリーズでは、こちらの記事で変数の使い方について解説しました。
さて今回の記事では、変数を有効的に使用してピラミッドをつくるプログラムを作成してみましょう!少し難しいかもしれませんが、頑張ってチャレンジしてみてください!
※MakeCodeの基本的な使い方は別記事「MakeCodeの使い方」をご参照ください。
MakeCodeでつくるピラミッド
今回つくるプログラムでは、エージェントを中心として、指定した段数のピラミッドを作成することができます。では、さっそくつくってみましょう!
まず以下の画像のように、エージェントがいる座標を中心に四角形をつくるプログラムをつくります。

もともとエージェントがいた地面を滑らかな石(グレーのブロック)に変更しています。
先ほど作成したプログラムを動かすと、そこを中心にブロックを四角く囲むように置けたと思います!

これを1段ずつ小さくして繰り返せば、ピラミッドをつくることができますね!
では2段目をつくるために、エージェントを中心に移動させましょう。その際、こちらの記事で説明した変数を使用します。
まず、「変数」から「中心」という名前の変数を作成しましょう。「変数【中心】を0にする」というブロックを使用していきます。

これを「チャットコマンド”run”を入力した時」の直後に追加し、「0」の部分を「エージェントの座標」に変更します。

次に、「エージェント」から「エージェントを【~0~0~0】へ【西(Xのマイナス方向)】向きにテレポートさせる」というブロックを取り、「チャットコマンド”run”を入力した時」のブロック内の最後に追加します。
そして、【~0~0~0】と【西(Xのマイナス方向)】の部分を変更します。手順が複雑なため、以下のリストにまとめます。
- 1. 「ポジション」から「【~0~0~0】+【~0~0~0】」というブロックを取り、「エージェントを【~0~0~0】へ【西(Xのマイナス方向)】向きにテレポートさせる」の【~0~0~0】の部分へはめる
- 2. 1.ではめた「【~0~0~0】+【~0~0~0】」の+の前の【~0~0~0】の部分に変数「中心」をはめる
- 3. 1.ではめた「【~0~0~0】+【~0~0~0】」の+の後ろの【~0~0~0】の真ん中の0を1に変更する
- 4. 「エージェント」から「エージェントの向いている方向」を取り、【西(Xのマイナス方向)】の部分にはめる
手順通りに変更が完了できたら、以下のようになります。
変更前 | 変更後 |
エージェントを【~0~0~0】へ【西(Xのマイナス方向)】向きにテレポートさせる | エージェントを【【中心】+【~0~1~0】】へ【エージェントの向いている方向】向きにテレポートさせる |

なおこのブロックは、エージェントの位置を中心に移動させ、y座標(高さ)を+1して1ブロック分上へ移動させるというはたらきをします。
最後に「エージェント」から「エージェントの設定を追加【1. 動きながら置く】【オフ】」を取り、エージェントを中心に移動させるブロックの上に置きます。

ここまでのプログラムを動かすと、ブロックを四角く囲んだ後に、エージェントが中心の一段上に来るようになっていると思います。

現在は1段目を仮に9×9にしていますが、ピラミッドの段数によってサイズを調整する必要があります。次はその設定をしていきましょう!
「チャットコマンド”run”を入力した時」の右側にある「+」をクリックし、ゲーム内チャットで入力できる変数を追加してください。

「num1▼」を押して、変数の名前を変更から「段数」という名前に変更してください。

まず、四角く囲うブロック数を変数「段数」を使用して指定します。
変数から「段数」と「計算」から「0-0」、「0×0」を用意し、これらを「(段数-1)×2)」の順番になるように組み合わせます。


「繰り返し4回」のブロック内の「エージェントを前に8ブロック移動させる」の「8」の部分を先ほど組み合わせたものに変更します。

次に、エージェントを中心から左下に移動させるブロックの2箇所の数値を「段数-1」に変更します。

また現在、エージェントがスロット1番に持っているブロック数が仮に1スタック分となっていますが、使う分だけの数に変更します。
変数から「段数」と「計算」から「0-0」、「0×0」を2つ用意し、これらを「(2×(段数-1))×4)」の順番になるように組み合わせます。


「エージェントに【ブロック】を64個、自分のスロット1番に設定させる」の「64」の部分を先ほど組み合わせたものに変更します。

では、ここで一度プログラムを動かしてみましょう!
チャット欄に「run+(半角の空白)+(段数)」と打ってみましょう。例えば、3段のピラミッドをつくりたい場合、「run 3」と打ちます。
すると、以下のように四角のサイズが以前と変わったことがわかると思います。

3段のピラミッドの場合、最下段の四角は1辺が5ブロックになります。今回作成された四角が5×5であれば成功です!

先ほど、変数「段数」の値を「3」としてプログラムを動かしました。次に、置かれたブロックを壊したり、エージェントの位置を移動させたりせずに、「run 2」、エージェントの動きが止まったところで、さらに「run 1」と打ってください。
すると、3段のピラミッドがつくられます。

つまり、変数「段数」の値を1ずつ減らして、「段数」が1になるまで繰り返すことでピラミッドをつくることができます!
では、最後にそのプログラムをつくっていきましょう!
まず、「論理」から「もし【真】なら」を取り、「変数【中心】を【エージェントの位置】にする」より下の全てのブロックを挟むようにつけます。

次に、変数から「段数」と「論理」から「0<0」を用意し、これらを「段数>0」の順番になるように組み合わせます。


「もし【真】なら」の「真」の部分を先ほど組み合わせたものに変更します。

あとは、プログラム内で変数「段数」の値を1減らし、このプログラムを再度呼び出します。
「プレイヤー」から「チャットコマンド”jump”を 実行する」、「高度なブロック」をクリックして開き、「文字列」から「文字列をつなげる”Hello” “World”」、「計算」から「0-0」、変数から「段数」を用意し、これらを「チャットコマンド【文字列をつなげる”run “【段数-1】】を実行する」の順番になるように組み合わせます。このとき,「run」の後ろに半角空白を打つことを忘れないようにしてください。


「もし段数>0なら」のブロック内の最後につけます。

これでピラミッドをつくるプログラムの完成です!!こちらが完成したプログラムです。

プログラムを動かすと、ピラミッドがつくれました!

さいごに
MakeCodeでは、他にも建物の建築をAgentに手伝ってもらったり、さまざまな仕掛けをつくったりすることができます。ぜひ自分でもいろいろ試して、効率良く作品づくりを進めてみてくださいね。
保護者や指導者の方々へ
MakeCodeは、子ども達が視覚的に理解しやすい「ビジュアルプログラミング言語」を採用しています。
MakeCodeでプログラミングに触れて興味が湧き、その後自分自身で言語を学び、もっと複雑なプログラミングに挑戦していく子もいます。
Minecraftカップに参加する中で、お子さんから「もっと早く建物をつくりたい」「プログラミングもやってみたい」といった声が上がりましたら、ぜひ本記事をすすめてみてください。
MakeCodeシリーズ
【MakeCodeシリーズ①】fillコマンドとreplaceコマンド
<執筆:渡邊陽翔>