【Minecraftプログラミング】は、「Microsoft MakeCode for Minecraft」を利用してマインクラフトの世界でプログラミングを学ぶ連載です。毎週月~金曜日更新。

Minecraftプログラミング レッスン42変数で増やす

水が届く範囲まで畑にするには

外側ほど長く耕すようにする

変数を使ってエージェントに耕させる範囲を外側に広げていき、畑を完成させます。水源から遠くなるほど、エージェントが耕す長さは長くなります。最終的に水源から4ブロック分外側に移動し、9×9ブロックの畑ができるようにプログラミングします。

水源を1周したエージェントは、耕す前と同じ場所に戻る

エージェントを水源の対角線に移動させ、畑の範囲を広げていく

1変数を追加する

HINT 水源から最大4ブロックまで畑にできる

マインクラフトの農耕には水源が不可欠ですが、利用範囲は4ブロックまでとなっています。水源から4ブロック離れると作物は育たず、畑も乾いて土に戻ってしまいます。この章で作った畑は、水源が1つの場合での最大の大きさです。

2ブロックを組み込む

HINT 長さは2からスタートする

変数[1辺の長さ]は、エージェントが一度に耕す距離を決めています。水源の周囲を耕すには2ブロック分作業する必要があるので、初期値を「2」に設定します。

3繰り返し回数を変数にする

HINT ここまでを実行するとレッスン39と同じ結果になる

手順3までを実行すると、レッスン39と同じように水源の周り1ブロック分を畑にしてエージェントが止まります。ここまでの動作が正しいかどうか、コマンドを実行して確かめてみましょう。次の手順からは、1ブロックずつ外側を耕すようにプログラムを作っていきます。

4耕す長さを増やす

HINT 耕す長さは2ブロックずつ増える

エージェントが水源の周りを1周するたびに、外側に向かって移動して耕す範囲が広がります。手順4 の操作1で[関数を呼び出す[doMove]]を忘れずに接続しましょう。

間違った場合は?


エージェントが耕す長さは、水源から離れるごとに2ブロックずつ増えていきます。このため、エージェントが1周するごとに変数[1辺の長さ]を2ずつ増やします。

5外側に移動する回数だけ繰り返す

HINT サバイバルモードの場合は3回まで繰り返す

この畑は、1辺が9ブロックの正方形で中央に水源が1ブロックあり、全部で9×9-1=80ブロック分あります。種も80個必要になりますが、1つのスロットには64個までしか入らないため、資源が有限な[サバイバル]のゲームモードでは種が足りなくなってしまいます。

[サバイバル]のゲームモードでこのプログラムを実行するときは、手順5の繰り返し回数を「3」に変更して、1辺が7ブロックの正方形の畑を作りましょう。

テクニック プログラムの流れを確認しよう

ここで作ったプログラムは、エージェントが水源の周りを周回して畑を耕す処理と、外側に移動して耕す範囲を広げる処理の2つが交互に繰り返されています。

畑を耕す処理は変数を使って2ブロックずつ増えていき、外側に移動する処理はエージェントが1周するごとに実行されます。エージェントが水源の対角線へと移動する動作は、この2つの処理をつなぐ重要なポイントとなります。

プログラムがうまく動かないときは、エージェントが移動するブロックをチェックしてみましょう。

テクニック 種と一緒に肥料もまこう

関数に処理を追加すると、プログラミングの内容を簡単に変更できます。例えば下のように関数[doSlant]にブロックを2つ追加すると、エージェントが種と一緒に肥料をまくようになります。また、作物と土ブロックを交互に置くことも可能です。