在多维数据集中分组块的最有效/逻辑方法

时间:2016-12-30 19:51:18

标签: java python minecraft

我读了一篇blog关于在我的世界中检索立方体中的所有块并写出可以复制它的python脚本。代码为Minescan.py

然而,它逐个迭代x,y,z坐标,所以如果你有一个10x10x10的立方体,那么它将创建1000个语句;这不仅写入速度慢,而且执行速度慢。

我的Minecraft API可让您设置individual blockcuboid of blocks of the same type

我希望改进这个程序,以便在可能的情况下创建长方体而不是单个块。但是,我在概念上努力想出最好的方法来做到这一点。

e.g。如果只有一个维度,它看起来像这样(W为Wood,D为Dirt):

WDDDDDDDDW

您可以使用简单的for循环遍历x轴,并在每次更改块时写入命令。

伪代码

for i in range(0, x):
    blockType = getBlock(x,0,0)
    if blockType != previousBlock:
       writeBlockRange

最终会以

结束
setBLock(1,0,0,Wood)
setBLocks(2,0,0,9,0,0,Dirt)
setBLock(10,0,0,Wood)

如何有效地将简单的for循环扩展到2维,然后扩展到3维?

0 个答案:

没有答案