準備するもの |
|
「Minecraft Pi EDで素数階段を上る」や「Minecraft Pi EDで素数階段を上る(その2)」で作ったまっすぐの階段だと、Mincraftのマップに収まらないので、たくさん上れません。
このように四角い螺旋階段にして、たくさん上りたいと思います。
from mcpi import minecraft mc=minecraft.Minecraft.create() mc.setBlocks(-60,-60,-60,60,60,60,0,0) mc.player.setPos(50,-80,-50) colors=[1,2,3,4,5,6,7] direction=1 x=50 y=-60 z=-50 num=2 while num < 400: for i in range(num-1,0,-1): if i < 2: y = y + 1 color=colors.pop(0) colors.append(color) break if (num % i) == 0: color=0 break if direction==1: # down to up mc.setBlocks(x,y,z, x+7,y,z,35,color) if z < 50: z = z + 1 else: mc.setBlocks(x,y,z, x+7,y,z+7,35,color) x = x - 1 direction=2 elif direction==2: # left to right mc.setBlocks(x,y,z, x,y,z+7,35,color) if x > -50: x = x - 1 else: mc.setBlocks(x,y,z, x-7,y,z+7,35,color) z = z - 1 direction=3 elif direction==3: # right to left mc.setBlocks(x,y,z, x-7,y,z,35,color) if z > -50: z = z - 1 else: mc.setBlocks(x,y,z, x-7,y,z-7,35,color) x = x + 1 direction=4 elif direction==4: # right to left mc.setBlocks(x,y,z, x,y,z-7,35,color) if x < 50: x = x + 1 else: mc.setBlocks(x,y,z, x+7,y,z-7,35,color) z = z + 1 direction=1 num = num + 1
見晴らしも良くて、上りがいがあります。
コメント
[…] 100までなのは、primesに定義している素数が100までの素数だからです。そういえば、素数に関しては、以前マインクラフトで素数階段を作りましたが(Minecraft Pi EDで素数階段を上る(その3)) 実際にゲーム空間で素数階段を上るととても感慨深い気持ちになります。素数を用いる素因数分解も計算しててとても面白いです。 […]