ピラミッドを作ろう! 第三回:大きさを自由に変える! 【マイクラコラムVol.8】

こんにちは、ロボテックです。
マインクラフト教育版MakeCodeでのピラミッド作り、今回がラストの第三回となります。
※前回の記事はこちら:第二回:ループで自動化
今回のテーマは以下です。
●第三回:発展。作る時に大きさを自由に決める。(引数)
それでは難しい話は後回しにして、今回どんな事をするのか結果から見てみましょう。
🧱たくさんのピラミッドを召喚!

どーーーん!
小さなピラミッドから巨大なピラミッドまで、いろいろな大きさで生成しています。
こういった「ピラミッドの軍団」を作る場合、第二回までの作り方だと1回ごとにプログラムを開いてあれこれと数字を変える必要がありました。
しかし、第三回の作り方だとプログラム画面を開く事なく、生成時に「こんなサイズで作って」と数字を入れるだけで自由に大きさを変えられます。
💻️ 新テクニック「引数(ひきすう)」
まず、前回(第二回)の完成プログラムを見返してみましょう。

これは「20段のピラミッド」を作るプログラムでした。
今回はこのプログラムを改造していきます。
まず、「作る時に大きさを変える」という事をするには、今まで使っていなかった新しい機能「引数」を使う必要があります。
上の画像の一番上、「入力した時」の右にあるプラスマークをクリックしてみましょう。

すると、何やら「num1」という文字が出てきましたね。
これは「引数(ひきすう)」というものです。
細かい用語や意味を置いてカンタンに説明すると、これは「プログラムを実行する時に数字をセットで入力できる」というものです。
たとえば「make 20」と入力すると、上記のnum1に20が入った状態でプログラムが実行されます。
以下の「sample」プログラムを見てみましょう。

実行時に、マイクラ上で「sample 50」と入力すると、50という数字がnum1に保存されます。
そしてそのnum1を2倍にしてメッセージとして送信すると、マイクラ上で「100」という発言が表示されます。
当然「sample 100」と入力すれば、100の2倍で「200」と表示されます。
このように、引数を使うとプログラムを実行する際に「数値」をセットする事が出来るようになります。
この引数で、生成するピラミッドの大きさが変わるプログラムを作っていきましょう。
🧱 いよいよプログラムの改造だ!
それでは、さっきのmakeプログラムを改造していきます。
使いたい引数の「num1」は、変数一覧に保存されています。

このnum1を持ってきて、

「くりかえし」に入れる!
こうすれば、make 20なら20段、make 30なら30段のピラミッドが出来る!
これで完成!
………
……
…
今「あれ? おかしいぞ?」って思った人がいれば、とても鋭いです。
引数を使わずにプログラム内の数字を直接操作してピラミッドの大きさを変えていた時は、もっと別の箇所も調整していましたよね。
このまま実行するとエラーはありませんが、おかしなピラミッドが出来上がります。
どうおかしいかは実際に見てもらいましょう。

手前が「make 10」で作ったピラミッド、奥が「make 30」で作ったピラミッドです。
なんでこんな変な形になったかと言うと、さっきの改造では「ピラミッドの高さ」は変えられるようになりましたが、「ピラミッドの幅」は大きさ40で固定になっているからです。
続けて幅についても改造していきましょう。

前回勉強した通り、ピラミッドは1段につき、幅が2ずつ小さくなります。
そのため20段のピラミッドなら、底面の幅は一辺につき40ブロック必要です。
つまり、num1として30が入れば、底面は1辺60ブロックで作りはじめれば良いという事になります。
ここから1段を作る「範囲の終わり」のXとZだけ、num1を使った書き方に修正していきましょう。

範囲の終わりは、基本的にセットした段数(num1)の2倍でオーケーです。
ですが、このプログラムではプレイヤーにピラミッドが接触しないようにXを10ズラしていました。
その点も踏まえ、以上のようにend_xとend_z変数と作り、計算に必要な数値を保存します。

あとは、このend_xとend_zを、「範囲の終わり」に入れるだけです。
「end_x-dan」のような引き算をしていますので、ループする度にdanの変数が大きくなり、1段が小さくなっていきます。
これが今日のプログラムの最終形です。
引数は初心者向けプログラムの中でも難易度がかなり高いものですので、よくわからなくても大丈夫です。
まずは上の最終プログラムを書いてから「make 100」と入力すると、おっきな100段ピラミッドが出来るはずです。
※ピラミッド作成中に移動すると形が歪んでしまいます
この歪みを直す方法もありますが、更に難易度が上がってしまうため今回は説明を省きます

🔍️まとめ
ここまで全三回で、マイクラ教育版でピラミッドを作るプログラムの説明を行ってきました。
コラムではどうしても駆け足な説明になってしまいますが、「よく分からない」「もっと知りたい」という方はぜひレッスンにご参加ください。
ロボテックでは塾・勉強・単元的なプログラミング学習ではなく、「楽しい」「もっと知りたい」という気持ちを引き出す形のレッスンを行っています。
🖥️ ロボテックについて
\ お近くの教室で無料体験受付中! /
ロボテックは、宇都宮市(下栗・ゆいの杜)を中心に、栃木市、壬生町、館林市(群馬)で子ども向けのロボット・プログラミングスクールを運営しています。
LEGOや教育版マインクラフト、Scratch、Robloxなどなど多彩な教材で楽しくプログラミングを学んで頂けます。
無料体験も定期開催しておりますので、ぜひお気軽にご相談ください!
【詳しくはこちら】