お知らせ

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

詳細はこちら

【01】前後左右上下に移動する

移動(move)のイメージ画像 マイクラ(Python)

この項では「1ブロック前に移動しろ!」といったように、エージェントを動かすための命令を学習します。エージェントは空中に浮かぶこともできるため、障害物がなければ、移動できる方向は前・後・左・右・上・下の6方向になります。

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

agent.move(FORWARD1)

これがエージェントを前に移動させる命令です。まず先頭の agent. というのは、この動作の主体(移動させたい対象)がエージェントであることを表します。

そして、moveムーヴ は英語で「動く」、FORWARDフォワード は「前へ」という意味です。この構文では FORWARD は必ず大文字で書かなければならないので注意してください。

そして FORWARD のあとにコンマで続く数値が、移動する距離になります。ですからこの場合は「エージェントを前へ1ブロック移動させる」という意味になります。

エージェントをほかの方向に移動させる

agent.move(FORWARD4)
agent.move(BACK2)
agent.move(LEFT6)
agent.move(RIGHT, 5)
agent.move(UP1)
agent.move(DOWN3)

BACKバック は英語で「後ろへ」、LEFTレフト は「左へ」、RIGHTライト は「右へ」、UPアップ は「上へ」、そして DOWNダウン が「下へ」となります。この6種類の方向を表す単語は move 以外の命令でもよく使うのでしっかり覚えておいてください。

move ではどの方向へ移動してもエージェントの向く方向は変わりません。

実際にエージェントを動かしてみよう

move の課題画像

それでは実際にエージェントを移動させてみましょう。上の画像のような道を作り、スタート地点(金のブロック)からゴール地点(ダイヤモンドのブロック)まで赤い道に沿って move でエージェントを移動させます。

まずは前方向3ブロック進みます。

agent.move(FORWARD, 3)

これで下の画像のように移動できたと思います。

move の課題画像2

次はエージェントから見て右方向2ブロック移動させます。

agent.move(RIGHT, 2)

move の課題画像3

これでゴールに到達できました!

「前に移動」もチャットコマンドで実行できるようにする

この移動の命令も、エージェントの位置を微調整したいときによく使うので、前回と同じように、チャットコマンドで実行できるようにしておきましょう。ただし、前後左右上下すべて設定するのもたいへんなので、ここでは「前に移動」だけ設定します。

def on_chat2(num1):
    agent.move(FORWARD, num1)
player.on_chat(“FW”, on_chat2)

基本的な構造は前回と同じですが、呼び出すコマンドは FORWARD の略の “FW” にしました。ラグビーやサッカーのフォワードも FW と略しますからわかりやすいと思います。

また chat というキーワードは前回使ってしまっているので、今回は chat2 となっているところに注意してください。

そして前回とは大きく違うのが1行目と2行目に num1 という変数が追加されている点です。これは何かというと、エージェントが移動する距離を示すパラメーターで、チャット欄で「FW 1」と入力すればエージェントが1歩だけ前へ、「FW 5」と入力すればエージェントが5歩前に進むようになります。また「FW -5」と入力すれば後ろに5歩移動することになります。