お知らせ

『プログラミング能力検定(11月検定)』参加者募集中!

詳細はこちら

【06】ブロックを置く

「place」イメージ画像 マイクラ(Python)

ここではブロックを置く命令を学習します。Minecraft で何かを作ろうとしたとき必ず使う命令ですのでしっかり覚えてください。

前後左右上下にブロックを置く

agent.place(FORWARD)
agent.place(BACK)
agent.place(LEFT)
agent.place(RIGHT)
agent.place(UP)
agent.place(DOWN)

place は「場所」という意味もありますが、動詞では「置く」という意味の英語です。続く ( ) の中に置きたいブロックの方向を前後左右上下で指定するというのは、movedestroy のときと同じです。

ただし、すでにブロックなどが置かれている方向にさらにブロックを置こうとすると「この場所では、エージェントはブロックまたはアイテムを使用できません」といったメッセージが出てエラーになりますので注意してください。

エージェントにアイテムを持たせる

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

ではさっそくエージェントに何か置いてもらおうと思いますが、その前に、エージェント自身に置いてもらいたいアイテムを持たせる必要があります。

マウスでエージェントを右クリックすると上の画像のようなアイテムの一覧(インベントリ)が表示されます。上の3段(27個)がエージェントの持ち物、下がプレイヤーの持ち物となりますので、使用したいアイテムをプレイヤーのインベントリからエージェントのインベントリに受け渡してください。

インベントリのひとつひとつのマスをスロットといいますが、エージェントのスロットには画像のように1番から27番までのスロット番号が割り振られています。まずは1番のスロットに「赤のウール」を64個、2番のスロットに「オレンジのウール」を64個入れてください。

それぞれのスロットに入れられるアイテムの数は最大64個ですが、「クリエイティブモード」の場合、place でブロックを置いてもスロット内のブロックは消費されません。ですから「クリエイティブモード」の場合は、スロットに入れる数は1個でもかまわないのですが、必要な数を入れるクセをつけておきましょう。

前に「赤」、後ろに「オレンジ」のウールを置く

エージェントにアイテムを持たせることができたら、place を使って置いてみます。

agent.place(FORWARD)
agent.place(BACK)

前後に赤のウール

上の画像のように、エージェントの前後に「赤のウール」が置かれたと思います。このように、何も指定しなければ、最初はスロット番号1番のアイテムが置かれます。

では、1行目に agent.set_slot(2) というコードを挿入してみましょう。

コードが書けたら場所を変えて実行してみましょう(同じ場所だと今置いたブロックがじゃまになってエラーになります)。

agent.set_slot(2)
agent.place(FORWARD)
agent.place(BACK)

前後にオレンジのウール

こんどは前後に「オレンジのウール」が置かれたと思います。

setセット は「設定する」という意味の英語、つまり agent.set_slotスロット(2) で「エージェントのスロット番号を2番に設定する」という意味になります。

いちど2番に設定したら、変更の指示を与えない限り、次回以降のプログラムの実行でもずっと2番が適用されますので注意してください。

そこで、「前に赤のウール」「後ろにオレンジのウール」とするために、まず agent.set_slot(1) でスロットの番号を 1 に戻してから前のブロックを置きます。次に agent.set_slot(2) でスロット番号を 2 に設定し直してから後ろのブロックを置くようにします。

agent.set_slot(1)
agent.place(FORWARD)
agent.set_slot(2)
agent.place(BACK)

前に赤、後ろにオレンジのウール

これで前に「赤」、後ろに「オレンジ」のウールを置くことができたと思います。