【Minecraftプログラミング】は、「Microsoft MakeCode for Minecraft」を利用してマインクラフトの世界でプログラミングを学ぶ連載です。毎週月~金曜日更新。
変数を使って止める
エージェントの動きを止めるには
チャットコマンドで変数を変える
エージェントがタマゴを回収するプログラムは、[[真]ならばくりかえし]という条件になっているため、永遠に動き続けます。
このレッスンでは繰り返し処理を終わらせて、エージェントを停止させるチャットコマンドを作ります。紹介するブロックの組み合わせはほかのプログラムにも使えるので、覚えておくと便利です。
プログラムを実行するとエージェントが動き続ける
タマゴの回収が終わったらコマンドで止まるようにする
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」コマンドを実行することで、エージェントがタマゴを回収できるようになっています。