プログラム実行時に値を与えて、色々な長さの道を作る方法 マインクラフト&Python

マインクラフトのコマンド実行例 マインクラフト+Python
マインクラフト+Python

マイクラのPythonプログラムは、基本的にはプログラムファイルの中に書かれた命令のとおりにしか実行しません

  • 決められた時に、
  • 決められた場所に、
  • 決められたブロックの種類を、
  • 決められた個数だけ配置する。

という事を、今までのマイクラPythonプログラム紹介記事でお伝えしてきました。

しかし今回は、実行する時のあなたの気分によって、ブロックの個数を簡単に変えられるプログラムを紹介します。
このプログラムを応用すれば、気分によってブロックの種類だって簡単に変えられるよう改造することもできますので、マインクラフトのPythonプログラムの面白みがぐっと広がってきますよ!

プログラムに数字や文字を与えて実行する

今まで紹介してきた記事では、マインクラフトのチャット入力エリアに

/py road

などを入力すると、Pythonプログラムが実行されてマインクラフトの世界に自動で建築することができました。

しかし、もう少し踏み込んだPythonプログラムの使い方をすると、

/py road 10

のように、ファイル名の後ろに半角スペースを加えて、さらに好きな値(数字や文字)を付け足すことで、プログラムにこの値を与えて実行させることができます。
この、プログラムに値を与えるものを、プログラマは「パラメータ」とか「引数(ひきすう)」と呼びます。

マインクラフトのコマンド実行例

今回解説するマイクラPythonプログラムでは、road.py というプログラムにパラメータを指定して実行し、好きな長さの道を作るようにしてみましょう。

繰り返し命令を使って好きな長さの道を作る

以前の記事では、繰り返し命令の for というプログラムを使って、長い階段を作る方法を解説しました。
その結果、雲を突き抜ける高さの階段を簡単に建築することができましたよね。

しかしこのプログラムの欠点は、階段の長さを変えるためにはプログラムファイルを開いて、Pythonプログラムの中身ををいちいち修正しなければならなかったこと。
今回解説するプログラムでは、この欠点を解消してゆきます。
まずはプログラムの内容を見てゆきましょう。
ご自身の環境で動かしてみたい場合は、以下の場所に保存してください。
ファイルパス(Macの場合)
/Users/ユーザ名/Library/Application Support/minecraft/mcpipy/road.py

プログラムに値を与えて実行する方法

このプログラムを実行するためには、以下のようなコマンドをマイクラのチャットメッセージに記入します。

/py road 10
  1. road.py プログラムに数字の10を与えて実行し、
  2. プログラム側がこの値(パラメータ)を受け取り、
  3. このパラメータをプログラム実行時に活用して建築をおこないます。

結果から言うと、10ブロックぶんの道が東に向かって自動で建築されます。

/py road 20

で実行すると、20ブロックぶんの道が東に向かって自動で建築されます。

自動で道を建築するマイクラPythonプログラム

プログラムで値を受け取る方法

コマンドで指定された値(パラメータ)をPythonプログラムで受け取る方法として、3段階の作業が必要になります。

  1. 値(パラメータ)を受け取る準備をする
  2. 値(パラメータ)を受け取る
  3. 受け取った値(パラメータ)を開いて整理する

以降、プログラム実行時に与えられた値のことを「パラメータ」と表現しますね。

上記のプログラムで見てみると、
パラメータを受け取る準備をする箇所は

のコードで、sys というプログラムを読み込んでおくことで、パラメータを受け取るプログラム命令が実行できるようになります。

次に、パラメータを受け取る箇所は

のコードで、sys というプログラムの中にあるargv の命令を使って、プログラム実行時に与えられたパラメータを受け取って params に入れています。

また次に、受け取ったパラメータを開いて整理する箇所は

のコードです。
受け取ったパラメータには複数の値が入っているのですが、コマンド

/py road 10

で実行したときの 10 の部分を見るためには params[1] というように角カッコ[]で番号を指定する必要があります。

パラメータの中身を確認する方法

パラメータの角括弧[]の番号はゼロから始まるのですが、
params[0]
の中には実行中のプログラムのファイル名が入っています。

params[1]
にはプログラム実行時に与えられたパラメータが入っています。

params[2]
には何が入るかというと、今は何も入っていませんので、開こうとするとエラーになるはずです。
チャット表示エリアの[ERR]となっている部分がエラーメッセージです。

マインクラフトでPythonを実行してエラーが出たときの画面

試しに road.py に以下のコードを追加して実行してみると、params の中に何が入っているかを確認することができます。

もし2個めのパラメータをプログラム実行時に与えたい場合は、チャット入力エリアに

/py road 10 test

のように、1個めのパラメータに続いて半角スペースを置き、数字や文字を記入して実行してみるとプログラムに送る事ができます。

マインクラフトのPythonプログラムで、パラメータを受け取るテスト結果

exit()
この命令を使うと、ここでプログラムの実行を強制的に終了し、以降に書かれているプログラムは実行しないという命令です。
動作の確認をしたり、エラーを探したりするときによく利用する命令ですので、うまく活用してゆきましょう。


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