さ、今回はMinecraftでランダムにブロックを並べてみましょう!!
今までPythonの「setBlock」を使ってブロックを並べる際、ブロックのIDを指定することで石や草、そしてガラスなどを配置してきました。
このIDは数字ですから数字の乱数を作る仕組みを適用すれば、スクリプトを実行する度にランダムにブロックのIDが変化し、いろいろなブロックが配置されます。面白そうでしょ。
ではやってみましょう!!
今回乱数を生成するために、新しいモジュールをインポートする必要があります。
それが「random」です。
このrandomモジュールで使う関数「randint()」を利用すると、任意の範囲の整数をランダムに返してくれます。
例えば使い方はこうです。
import random : randomモジュールのインポート
random.randint(0,24) :0〜24までの整数をランダムに返します。この場合24も含みます。
この整数の範囲はMinecraftのブッロクIDを指定しています。
ブッロクIDの一覧はこうでした。抜粋なのでまだまだブッロックの種類ありますよ〜。
ちなみにこのIDの調べ方はforgeを入れた際に以下のパスにあります「block.py」のスクリプト内に記載されてますので確認してみてください。
/users/ユーザー名/library/application support/minecraft/versions/1.12.2-forge1.12.2-14.23.5.2768/mcpipy/mcpi/block.py
では今回のスクリプトです。
1個目の赤枠内がrandomモジュールのインポートおよびrandint()関数の指定です。
randint()関数は0〜24までのブロックIDをランダムに返し変数 r に格納します。
2個目の赤枠内の「r」にブロックIDを指定しています。
ではこれを実行してみましょう!!
さあ、どうなるんでしょう?!
えい!!
座標 x+1にブロックが現れました!!
ちょっと後退して、もう一回同じスクリプトを実行。
えい!!
おお!!これはID10の「LAVA_FLOWING」、つまり溶岩流ですね。
うわっ流れ出しました!!
私が燃えてる!!・・・熱い熱い!!
ではこのスクリプトを連続して実行してみましょう!!
結果はこうです!!
溶岩流がまた出るは、水流は出るは、その他様々なストーンが出ました。
これだけでも結構楽しいですよ。
というこうとで、今回はrandomモジュールをインポートして、指定した範囲内のブロックをランダムに配置してみました。
ぜひ試してみてください!!