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

Minecraftプログラミング レッスン34変数を使って止める

エージェントの動きを止めるには

チャットコマンドで変数を変える

エージェントがタマゴを回収するプログラムは、[[真]ならばくりかえし]という条件になっているため、永遠に動き続けます。

このレッスンでは繰り返し処理を終わらせて、エージェントを停止させるチャットコマンドを作ります。紹介するブロックの組み合わせはほかのプログラムにも使えるので、覚えておくと便利です。

プログラムを実行するとエージェントが動き続ける

タマゴの回収が終わったらコマンドで止まるようにする

1コマンドを追加する

HINT [シミュレータを停止する]ボタンで停止できる

MakeCodeのプログラムは画面左下の[シミュレータを停止する]ボタンをクリックすると停止します。そのままの状態だとプログラムはずっと止まったままになるので、もう1回ボタンをクリックして再開しましょう。

2変数を追加する

3コマンドで変数を変更する

HINT タマゴが養鶏場からなくなることはない

ニワトリは養鶏場内をランダムに動いて約7分に一度タマゴを産みます。タマゴは次々と産み落とされるので、エージェントがすべてのタマゴを回収するのはほぼ不可能です。養鶏場の中のタマゴがある程度回収できたらエージェントを止めて、[持ち物]を確認するといいでしょう。

HINT 動きを止める変数を追加する

変数「stop」を追加して、チャットコマンドで入力したときに「真」になるように設定します。このままではプログラムは止まらないので、次の手順で繰り返し処理の条件を変更します。

4繰り返し処理を変更する

5開始時にエージェントを止める

HINT stopの変数が「0」の場合は繰り返すように変更する

[もし[真]ならくりかえし]ブロックに[[0][=][0]]ブロックを組み込んで、変数[stop]が「0」のときだけ処理を繰り返すように変更します。手順4の「0」は真偽の「偽」を表しています。

HINT 変数の値をリセットしておく

変数[stop]が「0」になっていると、「geteggs」コマンドを入力した際にエラーが発生してしまいます。チャットコマンドを入力した直後に変数がリセットされるように、[変数[変数]を[0]にする]ブロックを忘れずに接続しておきましょう。

6プログラミングを再スタートする

HINT 変数を1にして処理を始めさせる

変数[stop]をリセットしたらエージェントを自分の位置に戻し、再びプログラムが動くように設定します。養鶏場が複数ある場合でも、プレイヤーが養鶏場の中で「geteggs」コマンドを実行することで、エージェントがタマゴを回収できるようになっています。

テクニック エージェントの[持ち物]を確認しよう

エージェントが回収したアイテムは[持ち物]の空いているスロットに格納されます。1つのスロットがいっぱいになると次のスロットに格納されます。

タマゴのようにスタック数が少ないアイテムは[持ち物]がいっぱいになりやすいので、定期的にエージェントからプレイヤーにアイテムを移動しておきましょう。