【マイクラ×Python】秒で完成!広大な小麦畑をプログラミングで作る

マインクラフトの大規模な畑作り、手作業だと大変ですよね。クワで耕したり、水の位置を考えたり、種をまいたり…。

でもPythonを使えば、そんな大変な作業も一瞬いっしゅん完了かんりょうします!この記事では、プログラムを使ってかんたんに大きな小麦畑を作る方法を紹介しょうかいします。

プログラム初心者の人でも大丈夫だいじょうぶ。少しずつ解説していきますので、チャレンジしてみましょう!

 

スポンサーリンク

マインクラフトとPythonの連携について

Pythonでマインクラフトを動かすには、特別な準備が必要です。

セットアップ方法は、前の記事でくわしく説明していますので、まだ準備ができていない人はそちらをチェックしてみてください。

 

小麦畑を作るプログラム概要

小麦畑を作るプログラム概要

今回作成するプログラムでは、9×9ブロックの小麦畑を複数並べ、大規模な畑を作ります。

各畑の中央には水を配置して、すべての耕地が湿しめるようにします。

完成すると、横3つ、縦2つの計6つの9×9ブロックの小麦畑が整列した広い畑になりますよ。

これを手作業で作ると時間がかかりますが、プログラムなら一瞬いっしゅんです!

 

完成したソースコード

完成したプログラムは以下の通りです。

import mcpi.minecraft as minecraft

mc = minecraft.Minecraft.create()

# プレイヤーの座標を取得
x, y, z = mc.player.getPos()

# 基準になる座標を設定
cur_x = x + 1
cur_z = z + 1

# 9×9ブロックの耕地を2行×3列作成
for _ in range(2):
    for _ in range(3):

        # 空気ブロックで耕地の範囲をクリア
        mc.setBlocks(cur_x, y, cur_z, cur_x + 8, 100, cur_z + 8, 0)
        # 耕地を作成
        mc.setBlocks(cur_x, y - 1, cur_z, cur_x + 8, -1, cur_z + 8, 60)
        # 小麦を植える
        mc.setBlocks(cur_x, y, cur_z, cur_x + 8, 0, cur_z + 8, 59)
        # 中央に水を配置
        mc.setBlock(cur_x + 4, y - 1, cur_z + 4, 9)

        # 基準の座標(x軸)を進める
        cur_x += 9

    # 基準の座標を設定(x軸:もどす、z軸:進める)
    cur_x = x + 1
    cur_z += 9

 

プログラムの説明

プレイヤーの座標を取得

最初に、プレイヤーの位置を基準として畑を作る準備をします。

x, y, z = mc.player.getPos()
cur_x = x + 1
cur_z = z + 1

mc.player.getPos()を使って、プレイヤーの現在位置(x, y, z座標)を取得します。

その後、基準となる座標cur_xとcur_zを設定します。これを基準に畑を配置します。

 

9×9の小麦畑を作る

9×9の小麦畑を作るプログラム

中央に水ブロックのある9×9の畑をひとつ作ってみましょう。

mc.setBlocks(cur_x, y, cur_z, cur_x + 8, 100, cur_z + 8, 0)
mc.setBlocks(cur_x, y – 1, cur_z, cur_x + 8, -1, cur_z + 8, 60)
mc.setBlocks(cur_x, y, cur_z, cur_x + 8, 0, cur_z + 8, 59)
mc.setBlock(cur_x + 4, y – 1, cur_z + 4, 9)
  1. 畑の上を空気ブロックに置きかえる
  2. 地面を耕地ブロックに置きかえる
  3. 耕地ブロックの上に小麦を置く
  4. 最後に畑の中央に水を配置する

水を中央に置くことで、畑全体がうるおう仕組みです。

9×9の小麦畑を作る手順

 

東(xプラス)の方向に畑を広げる

東に畑をならべるプログラム

次に、畑を横(東方向)にならべます。9×9の畑を作る処理をfor文でくり返しましょう。

for _ in range(3):
    mc.setBlocks(cur_x, y, cur_z, cur_x + 8, 100, cur_z + 8, 0)
    mc.setBlocks(cur_x, y – 1, cur_z, cur_x + 8, -1, cur_z + 8, 60)
    mc.setBlocks(cur_x, y, cur_z, cur_x + 8, 0, cur_z + 8, 59)
    mc.setBlock(cur_x + 4, y – 1, cur_z + 4, 9)
    cur_x += 9

 

このループでは3つの畑を横にならべます。

東に畑をならべる

cur_x += 9 xじく基準座標(cur_x)を9ブロックずつ動かすことで、畑が東方向に広がります。

 

畑を南(z方向)に広げる

3つ横に並んだ畑を南にならべるプログラム

今度は、3つ横にならんだ畑を縦(南方向)にならべる処理を追加します。

for _ in range(2):
    for _ in range(3):
        mc.setBlocks(cur_x, y, cur_z, cur_x + 8, 100, cur_z + 8, 0)
        mc.setBlocks(cur_x, y – 1, cur_z, cur_x + 8, -1, cur_z + 8, 60)
        mc.setBlocks(cur_x, y, cur_z, cur_x + 8, 0, cur_z + 8, 59)
        mc.setBlock(cur_x + 4, y – 1, cur_z + 4, 9)
        cur_x += 9
    
    cur_x = x + 1
    cur_z += 9

 

3つ横にならんだ畑を縦に2つならべるイメージです。

3つ横に並んだ畑を南にならべる手順

cur_z += 9 zじく座標を9ブロック進めることで、畑を南(zプラス)の方向に広げます。

各行の最初の畑は、常に同じx座標から始まるようにする必要があります。一番西の位置にもどしましょう。

 

実行してみよう!

プログラムが完成したら「wheat.py」という名前で保存し、実行してみましょう。

広大小麦畑瞬時しゅんじ広がるはずです

 

コマンドブロックからでも実行できる!

コマンドブロックからPythonプログラムを実行する

実は、コマンドブロックからでもPythonで作ったプログラムを実行できます。

同じ場所で同じプログラムを何回も実行したい時に便利ですよ。

  1. コマンドブロックを入手する
    チャットらん/give @p command_block入力実行ます
  2. コマンドブロックを設置する
    設置後、右クリックでコマンドブロックの設定画面を開きます。
  3. コンソールコマンドにプログラムを実行するコマンドを入力
    今回のプログラムの場合「/py wheat」と入力します。
  4. レッドストーン信号を送る

コマンドブロックの入手方法や設定方法については、以下の記事でくわしく解説しています。まだ使ったことがない人は、ぜひ参考にしてみてください!

 

小麦が成長収穫しゅうかくできる状態のときに、耕地ブロックを草ブロックに変えると、植わっていた小麦がアイテムとして地面に落ちます。

小麦の収穫と種まきプログラム

アイテム化した小麦は、コマンドを使って回収すると楽です。

/tp @e[type=item] @p

 

まとめ

大きな小麦畑

この記事では、Pythonを使ってマインクラフト内に大規模な小麦畑を作る方法を紹介しょうかいしました。

プログラムを使えば、大変な作業も一瞬いっしゅんで終わりますね。

プログラムを自分好みにアレンジして、さらに大きな畑を作ったり、ほかの作物を植えたりしてみてください!

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