我的世界&python——读取csv文件实现迷宫

前言

我们在之前的博客中讲了如何使用mc的python api,如果有问题看这里

这次,我们讲一下如何读取一个csv文件,我提前准备了一个:

1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
1,1,1,1,1,1,1,1,1,0,1,0,1,1,0,1
1,0,0,1,0,0,0,0,1,0,1,0,1,0,0,1
1,1,0,1,0,1,1,0,0,0,0,0,1,0,1,1
1,1,0,1,0,1,1,1,1,1,1,1,1,0,1,1
1,1,0,0,0,1,1,1,1,1,0,0,0,0,1,1
1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1
1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1
1,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1
1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1
1,0,1,0,1,1,1,1,0,1,1,1,1,1,0,1
1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1
1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1

这个是我们即将实现的迷宫。

csv文件的话,就是在一个个数据之间添加逗号分隔,别的也没什么了。

我们准备按照csv文件的内容,1为墙壁,来实现一个迷宫。
迷宫高两格,用黄金实现,底下还有一层的草方块地板。

实现

import mcpi.minecraft as minecraft
import mcpi.block as block
"""根据amze.csv文件创建一个迷宫"""
mc = minecraft.Minecraft.create()
# 填充
GAP = block.AIR.id
# 墙体
WALL = block.GOLD_BLOCK.id
# 地板
FLOOR = block.GRASS.id
f = open("maze.csv")
pos = mc.player.getTilePos()
ORIGIN_x = pos.x+1
ORIGIN_y = pos.y
ORIGIN_z = pos.z+1

z = ORIGIN_z

for line in f.readlines():
    data = line.split(',')
    x = ORIGIN_x
    for cell in data:
        if cell == "0":
            b = GAP
        else:
            b = WALL
        mc.setBlock(x,ORIGIN_y,z,b)
        mc.setBlock(x,ORIGIN_y+1,z,b)
        mc.setBlock(x,ORIGIN_y-1,z,FLOOR)
        x += 1
    z += 1

遍历整个文件,对每一行去除逗号,然后我们对每一个数字进行判断即可(因为读入的已经是字符串类型了,所以直接取值)

另外就是注意一下,不要搞错x、z 的增加问题,不然结果很诡异,而且很难查错。

这篇博客是关于csv文件创建的,感兴趣可以看一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值