Minecraft Programming Python プレイヤー位置&block配置

【Minecraft】Pythonでブロックを並べてみる!!その3

今回は前回のブロックの配置処理をもっとプログラミングチックに並べてみましょう。

プログラミングチック?

プログラミングといえば、やっぱり「繰り返し処理」。

ある処理を決められた条件の範囲で繰り返し行う、とか得意ですからね。

ここでは繰り返し処理の代表的なfor文を使って前回と同じ処理をやってみましょう。

前回のスクリプトがこれです。

X・Y・Z軸方向にそれぞれブロックを5つ並べるスクリプトです。

それぞれの軸毎にスクリプトを色で分類しました。

まずそれぞれの軸をみますと、今回は5つのブロックを並べるのでsetBlock()を5回X軸の値を1ずつ加算して記述しています。

これがブロックを100個並べる、1000個並べると考えたら文字通りsetBlock()を1000個も記述する必要があり、面倒ですよね。

これを簡単に出来るのがプログラミングの真骨頂。

さ、for文を使って繰り返し処理を導入してみましょう。

では完成形をドドン!!

シンプルですね〜

このスクリプトは5行目以降に注目。

まず for文の説明ですが、記述の仕方はこんな感じ。

for   変数 in  オブジェクト *オブジェクトは値と文字列 等___ 繰り返し処理

____ 繰り返し処理       *___はTab1個分のインデント

 

変数を i とし in の後にオブジェクトを設定するのですが、ここで range() というメソッドを使います。

range()は、例えば range(5) と記載すると0~4 までの5つの値を格納しています。

for 文で i に0,1,2,3,4と順番に値を入れていきます。

そうそう「5」で指定していますが、0から始まりますので注意です。

するとfor分の中の6行目〜8行目の mc.setBlock()ではじまるスクリプトが5回繰り返し処理されます。

ここで注意点は、for分のオブジェクトの後は必ず「:」を付ける、そして、forの中身の繰り返し処理の前には必ずTabでインデントします。

ということで、このスクリプトを実行すると・・・

出来ましたね。結果は一緒ですがプロセスが異なります。

さっきのプログラムであれば1000個でも余裕です。

range()メソッドの設定をrange(1000)にすれば良いです。

下がスクリプトですが、5行目のrange()の設定を5から1000に変更しました。簡単ですね。

じゃあマジで実行してみます・・・エイ!!

おほほ、水平線の遥か彼方までブロックが配置されました。

数秒待ちましたけど。

ちょっと上からも見てみましょう。

すげー!! Minecraftのワールド上も世界は球体なんですね。

まだまだてっぺんが見えません。スペースキーを押したままです。

やっときましたてっぺん!!

雲の上です・・・他なんにも見えない。

これが1000個のレベル感か・・・この後一気に落下してみました。

ということで、次回はブロックの種類をランダムに変更します!!

どんどん楽しくなる!!

-Minecraft, Programming, Python, プレイヤー位置&block配置