準備するもの |
|
「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
このように数字が浮かびます。
コメント