【教育版マインクラフト】4-8 左手法、右手法による迷路の突破プログラム
エージェントを使って迷路を突破するプログラムを解説します。この例ではゴールをレッドストーンとしてそれに辿り着くまで繰り返しをします。条件分岐が少し複雑になりますが何か人形などを前にして一つ一つの処理を書きだしてみれば理解が深まりますよ。このプログラムでエージェントは、自律的に障害物を避けながら迷路を進むシンプルなロジックを使っています。迷路を攻略するための条件分岐と方向転換の組み合わせがポイントになっています。詳しくは以下の通りです。
全体の流れ
- このプログラムは、エージェントが迷路の壁にぶつかりそうなときに向きを変え、空いている方向に進むよう設計されています。
- 左、前、右の順で障害物をチェックし、通れそうな方向に向きを変えます。
- 迷路のゴールにたどり着くと「迷路をクリア!」のメッセージが表示されるようになっています。
1. チャットコマンド「go」を入力した時
このプログラムは、プレイヤーがチャットで「go」と入力したときに動き始めます。
2. 最初の条件分岐
- 「もし」エージェントにレッドストーンが「前」にあるかを確認させる
- ない場合(否定) →エージェントの前に何か障害物があるかを確認する役割です。レッドストーンが前方にない場合の繰り返しの処理を行います。
3. エージェントの左向きの処理
- もしブロックが「左」にない場合:
- エージェントの向きを「左」に変える
- 前に1ブロック移動する
- それ以外:
- 前の行動ができなければ、次の条件に移ります。
4. エージェントの前方の確認と処理
- もしブロックが「前」にない場合:
- エージェントが前に1ブロック進む
5. 右側の確認と処理
- もしブロックが「右」にない場合:
- エージェントの向きを「右」に変える
- 前に1ブロック移動する
- そうでない場合(ブロックが「右」にもある=行き止まり):
- エージェントが反転します(右に2回)
- 前に1ブロック移動する。
6. 最後の処理(最終ゴールへの到達)
- 迷路を解きながら適切な向きで進んでいき、最終的に:
- 「迷路をクリア!」というメッセージを送信
- メッセージが画面に表示され、ゴールを知らせます。
注意点・もしできるなら改造してみよう
もしプログラムを止めない場合は「C」キーを押してコード画面に戻りましょう。ただこのままだと迷路のコース次第ではぐるぐると動き続けてしまうこともあります。必要であれば進む回数の上限を設定してみるのもよいでしょう。
コースのイメージ(自分で好きなものを作ってみましょう)
その他の例
基本的に最初のものと同じです(Uターンした時戻りません)
上の例を関数化した例
このプログラム自体はわざわざ関数にするほどではないのですが、関数として処理を分割していく練習としてやってみるのもよいでしょう。
コース・WEB講座
目次へ戻る
教育版マインクラフト・プログラミング入門
マインクラフトコースについてはこちら
https://tsukurium.net/kitaurawa-minecraft-club/
体験会開催中です。
当教室では教育版マインクラフトコース開講中です。
先生のお話がしっかり聞くことができ、ルールを守れる人なら年長さんからでも入会可能です。
また当教室のマインクラフトコースはよくあるような既存の学びに対するカウンターカルチャーや逃避の場を志向するものではなく、教育版マインクラフトの特徴を活かしつつ高校の情報Ⅰや大学入試などメインストリームのしっかりとした学びにつながるものを志向するものです。
お問いあわせ・ご入会・体験会のお申込みは下記のリンクからお願いいたします。
画像をクリックするとお問い合わせページにジャンプします。