パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

Pi3 Python Minecraftで迷路を作成

2017-03-30 | Minecraft
人生という迷宮にさまよいながらさらに迷宮を作ってみました。

raspbian Pixelに入っていたGeanyというコードエディタで作成しています。
最初半角スペース見づらいなーと等間隔フォント探したりしましたが、普通にタブインデントでOKでした。使いやすいです。

<遊び方>
以下のコードをmaze.pyなどで保存して
Minectaft piを起動します。
tabキーでMinecraftを一時抜けて
maze.pyを保存したフォルダを端末で開いて、python maze.pyで実行します。

Minecraftの空中に迷路が出現します。


最初閉所恐怖症になるかなともおもったのですが実質20x20の迷路、破壊せず割と簡単に抜けられました。

俺は真っすぐ進みたいんだーとおもえば壁をガンガンこわし
全体像はどうなっているんだと思えば階段をつくって上にのぼるもよし
下に潜ってスターウォーズの冒頭感にひたるもよし

ご自由にお使いください。

# -*- coding: utf-8 -*-
import random
from mcpi import minecraft

mc=minecraft.Minecraft.create()

def getmaze(x,y):
    if (x<1 or x>39 or y<1 or y>39):return -1
    return maze[x][y]

def dig():
    x=random.randint(0,19)*2+1
    y=random.randint(0,19)*2+1
    if maze[x][y]==1:return
    h=random.randint(0,3)
    if h==0:
        dx=0
        dy=-1
    if h==1:
        dx=1
        dy=0
    if h==2:
        dx=-1
        dy=0
    if h==3:
        dx=0
        dy=1
    g=getmaze(x+dx*2,y+dy*2)
    if g==1:
        maze[x+dx][y+dy]=0
        maze[x+dx+dx][y+dy+dy]=0


# 平地作成
mc.setBlocks(-60,-1,-60,60,30,60,0)
mc.setBlocks(-60,-1,-60,60,0,60,1)
mc.setBlock(0,0,20,57)

maze = [[0 for i in range(0,41)] for j in range(0,41)]

for x in range(0,41):
  for y in range(0,41):
    maze[x][y]=1

maze[1][1]=0

for i in range(0,50000):
    dig()

maze[0][1]=0
maze[40][39]=0

for x in range(0,41):
    for y in range(0,41):
        mc.setBlock(x,4,y,1)
        if (maze[x][y]==1):
            mc.setBlock(x,5,y,1)
            mc.setBlock(x,6,y,1)
            mc.setBlock(x,7,y,1)

mc.setBlock(-1,4,1,2)
mc.setBlock(-2,3,1,2)
mc.setBlock(-3,2,1,2)
mc.setBlock(-4,1,1,2)

mc.setBlock(41,4,39,1)
mc.setBlock(42,3,39,1)
mc.setBlock(43,2,39,1)
mc.setBlock(44,1,39,1)


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。