今天继续介绍ComputerCraft的编程,以编写一个自动挖矿的机器人为本文目标。
挖矿机器人继续使用Mining Turtle
首先需要了解的是,每一种Mining Turtle一开始的能量(fuel)是零,因此不能接受任何指令,必须要提供提供煤矿,木材,或者Lava岩浆等能量。我们因为采用creative创意模式,所以就选择Lava即可,因为Lava桶能量最厉害,每一桶Lava是1000个能量。
编写一个function 用来检查Turtle的能量水平,如果低于一定值,需要给Turtle提供能量(Refuel)
local function checkFuel()
local f = turtle.getFuelLevel()
if f == 0 then
print("Turtle fuel level is "..f)
turtle.refuel()
else
print("Turtle fuel level is "..f)
end
end
当挖矿机器人有了能量之后,就可以开始挖矿了。
turtle.dig() --机器人向前面挖一个block
turtle.digDown() --机器人向下面挖一个block
turtle.down() --机器人向下移动一个block
通过循环使用这三行命令,机器人将向下挖出一个2*1 block 的 MineShaft
由于地下矿井黑暗处,有可能会有Mobs自动产生,所以一般来讲,每向下挖5个block,会在矿井上安置一个torch用来照明
local function putTorch()
turtle.select(16) ---选择机器人的储物空间第16个,在里面预先放满64个 Torch火炬
turtle.turnLeft() ---机器人向左转一次
turtle.dig() ---机器人向前方(已经左转)挖一个block
turtle.place() ---机器人放置火炬(第16Slot的物品)
turtle.turnRight() ---机器人向右转回,恢复原先面对的方向
end
预先设定向下挖的深度,比如暂时定为40个block,如果已经下挖到40个block,就安排机器人回到地面(初始位置)。
if (level >=40) then
print("Current Level is ".. level)
for i = 1, level+1 do
turtle.digUp() ---机器人向上挖一个block
turtle.up() ---机器人向上移动一个block
end
break ---当机器人回到地面后,跳出循环,结束当前任务
end
另外还需要检测机器人的能量情况,如果能量小于100,让机器人停止工作,回到地面
while true do
local fuel = turtle.getFuelLevel()
if fuel
for i = 1,40 do
turtle.digUp() ---机器人向上挖一个block
turtle.up() ---机器人向上移动一个block
if not turtle.detect() then --如果机器人周围四个方向的block都没有东西,说明机器人已经回到地面,并处于空中,停止向上移动,结束任务,否则继续向上移动。
turtle.turnLeft()
if not turtle.detect() then
turtle.turnLeft()
if not turtle.detect() then
turtle.turnLeft()
if not turtle.detect() then
break
end
end
end
end
end
break
当机器人回到地面后,向前移动三个block,继续重复挖矿动作,直到机器人最终能量耗尽。然后可以手动补充能量,再一次调用命令,继续挖矿等等。
本文程序已经上传到网络,可以通过使用以下命令,下载到你自己的Turtle 机器人里面
pastbin get tdB3YTZd AutoMining
需要指出,此程序还有很多可以完善的地方:
比如可以添加判断,让机器人只采集铁矿等贵重金属和稀有石头,其他的物体一概丢弃。
比如当机器人的 储物空间满了之后,可以将采集的物品放入事先预设好的chest储物箱里面。
比如不是垂直向下,而是阶梯性向下挖 。此时需要多一条命令(turtle.forward() )
还有复杂状况的处理,比如遇见lava和水如何处理等等
网上有很多关于如何建立自动挖矿的文章和视频,可以参考以下,加深理解。
https://www.youtube.com/watch?v=JX3lCq-U_Ug
http://www.computercraft.info/forums2/index.php?/topic/15292-213-john-strip-mining-turtle/
下一期,我们可以来学习一下如何建设自动伐木工厂,敬请期待。
大家可以通过以下方式支持我
1. 赞赏大叔我
3. 在公众号文章中留言互动
4. 在微信朋友圈和好友群转发文章
码字很辛苦,吸粉不容易,举手之劳,敬请关注。
领取专属 10元无门槛券
私享最新 技术干货