Minescript modを使って、マイクラで巨大迷路を作ります。
迷路のロジックさえ入手できれば、あとはマイクラでブロックを配置していくだけです。
サンプルのコードも載せていますので、コピペだけでも比較的簡単に作れると思います。
実際に巨大迷路を作ってプレイヤーを操作してみると、周りが壁だらけになっているために方向感覚が失われ、難易度が相当高くなります。

クリア不可能なくらい巨大な迷路も作れます。
途中で心が折れるレベルです。
巨大迷路を作る準備
まずは巨大迷路を作るための準備をします。
マイクラでMinescriptを使えるようにする
マイクラでMinescript modを使えるようにしましょう。
このmodは、マイクラ内でPythonスクリプトを実行するためのmodです。
使えるようにする方法は、こちらの記事にまとめていますので、参考にしてみてください。
迷路アルゴリズムを手に入れる
迷路を作るアルゴリズムはたくさん存在します。
ChatGPTに聞いてもいいですし、Webで検索してみてもいいですし、自分の好みのアルゴリズムを手にいれましょう。
この記事では、以前にまとめたこちらのアルゴリズムを利用しています。
プログラミングスクールのリンク集です。
おすすめできるスクールのみに絞っています。
Pythonスクリプト(maze.py)を準備する
こちらのコードをmaze.pyというファイル名で保存します。
このmaze.pyをMinescriptフォルダ(%appdata%\.minecraft\minescript
フォルダ)に移動しておきます。
import minescript
import random
WIDTH, HEIGHT = 41, 41
maze = [[1] * WIDTH for _ in range(HEIGHT)]
sets = {(x, y): (x, y) for x in range(1, WIDTH, 2) for y in range(1, HEIGHT, 2)}
def find(cell):
if sets[cell] != cell:
sets[cell] = find(sets[cell])
return sets[cell]
def union(cell1, cell2):
root1, root2 = find(cell1), find(cell2)
if root1 != root2:
sets[root2] = root1
return True
return False
if __name__ == '__main__':
(px, py, pz) = minescript.player_position()
blockpacker = minescript.BlockPacker()
for i in range(WIDTH):
vx = int(px - WIDTH / 2 + i)
for j in range(HEIGHT):
vz = int(pz - HEIGHT / 2 + j)
blockpacker.setblock((vx, int(py - 1), vz), "white_concrete")
blockpacker.pack().write_world()
edges = []
for x in range(1, WIDTH, 2):
for y in range(1, HEIGHT, 2):
if x + 2 < WIDTH:
edges.append(((x, y), (x + 2, y)))
if y + 2 < HEIGHT:
edges.append(((x, y), (x, y + 2)))
random.shuffle(edges)
for (x1, y1), (x2, y2) in edges:
if union((x1, y1), (x2, y2)):
maze[y1][x1] = 0
maze[y2][x2] = 0
maze[(y1 + y2) // 2][(x1 + x2) // 2] = 0
for i in range(WIDTH):
vx = int(px - WIDTH / 2 + i)
for j in range(HEIGHT):
vz = int(pz - HEIGHT / 2 + j)
if maze[i][j]:
blockpacker.setblock((vx, int(py), vz), "yellow_concrete")
blockpacker.setblock((vx, int(py+1), vz), "yellow_concrete")
blockpacker.pack().write_world()
WIDTHやHEIGHTの値を41から大きな値に変更することで、さらに巨大な迷路を作ることができます。
ただし、値は奇数にしてください。
アルゴリズムの解説についてはこちらの記事を参照ください。
床面は白色のコンクリートブロックで、壁は2ブロック分の黄色いコンクリートブロックで生成します。
ブロックも色々変えてみると面白いかもしれません。
巨大迷路を作る
準備ができましたので、マイクラのワールドにログインして「\maze」を実行します。

縦x横が40×40の巨大迷路が自動的に作成されます。
このアルゴリズムでは、どの場所からもすべての場所に行くことができます(空間が閉じてしまうことがない)ので、左上を入口にして、右下をゴール地点にしたり、中心をゴール地点にしたりすることができます。

さらに発展させて迷路ダンジョンも作れます。
こちらもサンプルコードを載せていますので試してみてもらえたらと思います。
まとめ
マイクラで巨大迷路を作ってみました。
今回は壁の高さを2ブロックとしていますが、実際にマイクラの世界で探索してみると、相当難易度が高いことが分かりました。
複数プレイヤーに挑戦してもらうのも楽しそうですね!
コメント