| 準備するもの |
|
「Minecraft Pi EDで素数階段を上る」で作った素数階段の散歩は楽しいことは楽しいのですが、今どこを歩いているかわかりません。
今の素数が分かるように、階段の横に数字を浮かべてみました。
数字は、毎度おなじみsysvbannerで作ります。
pythonからbannerコマンドを実行して戻り値にしたがってMinecraftPI上にブロックを配置します。
from subprocess import Popen, PIPE
cmd="banner 13"
p = Popen(cmd.split(' '), stdout=PIPE, stderr=PIPE)
result, err = p.communicate()
print
実行すると、以下のようにsysvbannerの結果が表示されます。
# ##### ## # # # # # # ##### # # # # # ##### #####
これを素数を表示するように修正して、階段の横に浮かばせます。
from mcpi import minecraft
from subprocess import Popen, PIPE
mc=minecraft.Minecraft.create()
mc.setBlocks(-127,-30,-127,127,50,127,0,0)
mc.player.setPos(0,-30,-35)
colors=[1,2,3,4,5,6,7]
x=0
y=0
z=0
num=2
while num < 150:
for i in range(num-1,0,-1):
if i < 2:
y = y + 1
color=colors.pop(0)
colors.append(color)
cmd="banner %s" % str(num)
p = Popen(cmd.split(' '), stdout=PIPE, stderr=PIPE)
result, err = p.communicate()
yy=0
xx=0
for line in result:
for c in list(line):
if c=="#":
mc.setBlock(xx-5, y+yy+10-30, z-30, 35,color)
if c=="\n":
yy=yy-1
xx=0
else:
xx=xx-1
break
if (num % i) == 0:
color=0
break
mc.setBlocks(x-3,y-30,z-30, x+3,y-30,z-30,35,color)
num = num + 1
z = z + 1
このように数字が浮かびます。


コメント