【マイクラ×MakeCode】エージェントで建築してみよう!(チュートリアル:Agent Build)

この記事では、MakeCode for Minecraftのチュートリアル「Agent Build」について解説します。

Agent Moves」の次にチャレンジしてみましょう。

「Agent Build」では、エージェントを使って四角形にブロックを置くプログラムを作ります。

プログラミングの基本「順次」「くり返し」「条件分岐」を学ぶことができますよ。

初心者さんにも分かるように、手順をひとつひとつていねいに解説していきます。

マイクラで楽しくプログラミング学習!自宅で学べるオンラインスクール
PR100以上のコンテンツが月額料金で受け放題【デジタネ】

スポンサーリンク

エージェントを自分の位置にもどす

チュートリアル「Agent Moves」のおさらいです。

エージェントを自分の位置にテレポートさせるプログラムをつくります。

エージェントを自分の位置にもどす 

  1. 「チャットコマンドを入力した時」ブロックの”run”をクリックし、”tp”と入力する。
     
  2. エージェントカテゴリーにある「エージェントを自分の位置にもどす」ブロックを出す。
     
  3. 「チャットコマンドを入力した時」ブロックの中に「エージェントを自分の位置にもどす」ブロックを配置する。
     
  4. 「開始」ボタンをおしてから、マイクラの画面にもどる。
     
  5. 「T」キーをおして、チャット画面を開く。
     
  6. tp と入力し、「Enter」キーをおして実行する。
     

エージェントが自分の位置に移動します。

 

エージェントの設定を追加する(動きながら置く)

エージェントに、動くたびにブロックを置く機能を追加します。

「チャットコマンドを入力した時」ブロック

1.プレイヤーカテゴリーにある「チャットコマンドを入力した時」ブロックを出す。

2.チャットコマンドの”jump”をクリックし、”pd”と入力する。

 

「エージェントの設定を追加」ブロック

3.エージェントカテゴリーにある「エージェントの設定を追加」ブロックを出す。

「エージェントの設定を追加」ブロック
エージェントに機能を追加するブロックです。
「動きながら置く」は、エージェントが動くたびにインベントリにあるブロックを置く機能です。
真偽の部分で、機能を有効(真)または無効(偽)にします。

 

「エージェントの設定を追加」ブロックを配置

4.「動きながら置く」機能を有効にしたいので、「偽」を「真」に変えます。

5.「チャットコマンドを入力した時」ブロックの中に、「エージェントの設定を追加」ブロックを配置する。

 

真偽値については「論理演算(かつ・または・ではない)とは?スクラッチ(Scratch)を使って解説」でくわしく解説しています。真(しん)と偽(ぎ)について、くわしく知りたい場合は参考にしてみてください。

 

エージェントのインベントリにアイテムを設定する

エージェントはプレイヤーと同じようにインベントリがあり、アイテムを持つことができます。

インベントリとは、持っているアイテムを管理する画面のことで、アイテムが入る1つ1つのマスをスロットといいます。

エージェントのインベントリ

エージェントを右クリックすると、エージェントのインベントリを見ることができます。

 

では、エージェントのインベントリにアイテムを設定するチャットコマンドを作りましょう。

1.プレイヤーカテゴリーにある「チャットコマンドを入力した時」ブロックを出す。

2.チャットコマンドの”jump”をクリックし、”rl”と入力する。

 

「エージェントにアイテムを自分のスロットに設定させる」「エージェントのスロット番号1を有効にする」ブロック

3.エージェントカテゴリーにある「エージェントにアイテムを自分のスロットに設定させる」ブロックを出し、「チャットコマンドを入力した時」ブロックの中に配置する。

「エージェントにアイテムを自分のスロットに設定させる」ブロック
エージェントのインベントリスロットにブロックまたはアイテムを設定します。
設定するブロックまたはアイテムとその個数、
インベントリの何番のスロットに設定するかを指定します。

 

エージェントのスロット番号は1~27まであります。

エージェントのスロット番号

左上のスロット番号が1で、そこから右向きに数えていきます。上の段は1~9、 真ん中の段は10~18、下の段は19~27です。

 

「エージェントにアイテムを自分のスロットに設定させる」「エージェントのスロット番号1を有効にする」を設置

4.「エージェントにアイテムを自分のスロットに設定させる」ブロックの「砂岩ブロック」を必要な数(1~64個)、スロット「1」番に設定する。

5.エージェントカテゴリーにある「エージェントのスロット番号1を有効にする」ブロックを出し、「エージェントにアイテムを自分のスロットに設定させる」ブロックの下に配置する。

「エージェントのスロット番号1を有効にする」ブロック
指定したインベントリスロットを有効にするブロックです。

スロット番号1に設定した砂岩を置きたいので、スロット番号1を有効にします。

 

エージェントを前に移動させる

チュートリアル「Agent Moves」のおさらいです。

エージェントを前に移動させるプログラムをつくります。

エージェントを前に移動させる

1.プレイヤーカテゴリーにある「チャットコマンドを入力した時」ブロックを出す。

2.チャットコマンドの”jump”をクリックし、”fd”と入力する。

3.エージェントカテゴリーにある「エージェントを移動させる」ブロックを出し、「チャットコマンドを入力した時」ブロックの中に配置する。

4.1ブロック移動させるを3ブロック移動させるに変更する。

 

実行してみましょう!

  1. rl:エージェントにブロックを追加
  2. pd:エージェントの設定を追加する
  3. fd:3ブロック分前進

の順番で実行します。

 

実行の手順

  1. 「開始」ボタンをおしてから、マイクラの画面にもどる。
  2. 「T」キーをおして、チャット画面を開く。
  3. コマンド入力し、「Enter」キーをおして実行する。

 

rlの実行結果

rlの実行結果

 

pdの実行結果

pdの実行結果

 

fdの実行結果

fdの実行結果

砂岩ブロックを置きながら、3ブロック分前進しました!

 

四角形を作るプログラムを考えよう!

「エージェントを移動させる」「エージェントの向きを変える」ブロックを使って、四角形を作成するチャットコマンド”square”を考えて作ってみましょう!

エージェントの向きを変える

チュートリアル「Agent Moves」のおさらいです。

「エージェントの向きを変える」ブロックは、エージェントカテゴリーにあります。

エージェントの向きを指定した方向(左右)に変えるブロックです。

「エージェントの向きを変える」ブロック

 

順番通りに命令を実行する

四角形を作るプログラム(順次)

エージェントの動きを上から順番にならべられたでしょうか?

エージェントはならべられた命令を上から順番に実行していきます。

このように、順番通りに命令を実行すること順次実行といいます。

 

変数ループを使ってみよう!

プログラムを見てみると、同じ命令を何回も使っていますね。

くり返し(ループ)を使うと、同じ命令をくり返し実行することができます。

 

変数ループ「変数を0~4に変えてくりかえす」ブロックは、ループカテゴリーにあります。

「変数を0~4に変えてくりかえす」ブロック

「変数を0~4に変えてくりかえす」ブロック
変数の値を0~終わりの値まで1ずつ増やしながら、中のブロックを実行します。

変数は0から始まるので、4回くり返したい場合は0~3になります。

 

ループのメリット

ループのメリット

  • プログラムがシンプルで見やすくなること。
  • 同じプログラムを何度も作らなくてよく、修正が簡単になること。

もう少し大きな四角形を作りたくなったら、ループを使わない場合は4か所修正が必要ですが、ループを使うと1か所の修正ですみますね。

 

変数とは

変数は、プログラムで使う数字や文字のようなデータを一時的に保存するための場所のことです。

よく「数字や文字を入れておく箱」と言われたりします。

くわしくは下の記事で解説しています。

 

実行してみましょう!

作ったプログラムを実行してみましょう。

  1. rl:エージェントにブロックを追加
  2. pd:エージェントの設定を追加する
  3. square:四角形を作る

の順番で実行します。

エージェントの手持ちのブロックが十分ある場合は、rlコマンドを省略しても大丈夫です。

 

四角形を作ることができたでしょうか?

四角形ができない?

 

場合分けしてみよう!

実行してみると、エージェントは最後ブロックにぶつかり続けて四角形が完成しません。

「エージェントに確認させる」「もし…なら」ブロックを使って、目の前にブロックがある場合は向きを変えてよけるようにしましょう。

 

「エージェントに確認させる」ブロック

「エージェントに確認させる」ブロック
エージェントととなり合っている指定した方向のマスにブロックがあるか調べます。
エージェントカテゴリーにあります。

 

「もし…なら でなければ」ブロック

「もし…なら」ブロック
もし条件が正しい場合、中の命令を実行します。正しくない場合は、何もしません。
論理カテゴリーにあります。

 

「もし…なら でなければ」ブロック
もし条件が正しい場合、「なら」の下にある命令を実行します。
正しくない場合は、「でなければ」の下にある命令を実行します。

 

「エージェントに確認させる」ブロックを「もし…なら・でなければ」ブロックの真の場所に配置します。

最初のかたまりには、エージェントの前のマスにブロックがあった場合の命令。でなければの中には、エージェントの前のマスにブロックがなかった場合の命令を置きましょう。

 

条件によって処理の流れを変える

条件分岐を入れたプログラム

エージェントの前のマスにブロックがある/なしで処理が分かれるプログラムになりました。

このように、条件によって処理の流れが変わること条件分岐といいます。

 

もう一度実行してみましょう!

エージェントを別の場所に移動するか、失敗した四角形をこわして場所を確保しましょう。

四角形が完成!

四角形はできたでしょうか?

 

まとめ

チュートリアル「Agent Build」について紹介しました。

今回使用した新しいブロック

  • 「エージェントの設定を追加」ブロック
    エージェントに機能を追加するブロックです。
    今回は、「動きながら置く」機能を追加しました。
     
  • 「エージェントにアイテムを自分のスロットに設定させる」ブロック
    エージェントのインベントリスロットにブロックまたはアイテムを設定します。
     
  • 「エージェントのスロット番号1を有効にする」ブロック
    指定したインベントリスロットを有効にするブロックです。
     
  • 「変数を0~4に変えてくりかえす」ブロック
    変数の値を0~終わりの値まで1ずつ増やしながら、中のブロックを実行します。
     
  • 「もし…なら」ブロック
    もし条件が正しい場合、中の命令を実行します。
    正しくない場合は、何もしません。
    論理カテゴリーにあります。
     
  • 「もし…なら でなければ」ブロック
    もし条件が正しい場合、「なら」の下にある命令を実行します。
    正しくない場合は、「でなければ」の下にある命令を実行します。

 

プログラミングの基本となる3つの処理

今回のチュートリアルでは、プログラミングの基本的な処理の流れを学ぶことができました。

プログラミングの基本的な処理の流れ(フローチャート)

  • 順次実行 … 順番通りに命令を実行すること。
  • くり返し … 同じ処理を何回もくり返す処理。
  • 条件分岐 … 条件によって、処理の流れをかえる。

プログラムは、この3つの処理の流れを組み合わせて作られています。

 

 

タイトルとURLをコピーしました