パーソナルブログメモリ

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

minecraft piで空中回廊を作ってみる

2017-03-30 | Minecraft
最初の一段だけは自分で作らないといけませんが上までいけるはずです。
中間ぐらいまでで挫折しました。

<遊び方は前回を参考に>
Pi3 Python Minecraftで迷路を作成

ここまでで限界でした。


ソースコード
at.py
# -*- coding: utf-8 -*-
import random
from mcpi import minecraft

mc=minecraft.Minecraft.create()

bx=20
by=20
bz=1

def keepmaze(x,y,z):
    maze[x][y][z]=2

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

def  ext():
    global bx
    global by
    global bz

    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
    r=random.randint(0,2)
    dz=0
    if r==1:
        dx=dx*2
        dy=dy*2
    if r==2:
        dz=1
    s=0
    if r==0:
        g=getmaze(bx+dx,by+dy,bz)
        g1=getmaze(bx+dx,by+dy,bz+1)
        g2=getmaze(bx+dx,by+dy,bz+2)
        if g==0 and g1==0 and g2==0:
            keepmaze(bx+dx,by+dy,bz+1)
            keepmaze(bx+dx,by+dy,bz+2)
            s=1
    if r==1:
        g=getmaze(bx+dx,by+dy,bz)
        g1=getmaze(bx+dx,by+dy,bz+1)
        g2=getmaze(bx+dx,by+dy,bz+2)
        g3=getmaze(bx+dx/2,by+dy/2,bz+1)
        g4=getmaze(bx+dx/2,by+dy/2,bz+1)
        if g==0 and g1==0 and g2==0 and g3==0 and g4==0:
            keepmaze(bx+dx,by+dy,bz+1)
            keepmaze(bx+dx,by+dy,bz+2)
            keepmaze(bx+dx/2,by+dy/2,bz+1)
            keepmaze(bx+dx/2,by+dy/2,bz+1)
            s=1
    if r==2:
        g=getmaze(bx+dx,by+dy,bz+1)
        g1=getmaze(bx+dx,by+dy,bz+2)
        g2=getmaze(bx+dx,by+dy,bz+3)
        if g==0 and g1==0 and g2==0:
            keepmaze(bx+dx,by+dy,bz+2)
            keepmaze(bx+dx,by+dy,bz+3)
            s=1
    if s==1:
        bx=bx+dx
        by=by+dy
        bz=bz+dz
        maze[bx][by][bz]=1

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

for x in range(0,41):
    for y in range(0,41):
        for z in range(0,41):
            maze[x][y][z]=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)

for i in range(0,1000):
    ext()

for x in range(0,41):
    for y in range(0,41):
        for z in range(0,41):
            mc.setBlock(x,z,y,0)
            if maze[x][y][z]==1:
                mc.setBlock(x,z,y,2)




フルスクリーンで遊ぶと怖い。VRで…むりむりむりー

わーい!のぼれた。

最新の画像もっと見る

コメントを投稿

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