我正在为ComputerCraft中的一只海龟创建一个程序。该程序将使海龟控制我的游戏物品存储仓库。它将检查我放入的物品,然后找出箱子的位置,前往那里并将物品倒入。我将每个箱子的位置存储在一个表格中。例如:
cobblestone = {2,0,1}
这告诉乌龟,鹅卵石箱子存储在x=2、y=0和z=1的位置。为了让乌龟告诉它需要存储什么,它执行以下操作:
itemDetails = turtle.getItemDetail()
name = string.gsub(itemDetails.name, "minecraft:", "")
这段代码是用来获取物品的详细信息。它将设置一个变量,该变量为物品名称减去开头的minecraft:(我不能有一个名为"minecraft:cobblestone"的变量)。我不知道如何使用此变量调用表格并找到其位置,以便让海龟前往该位置。如果有人能帮忙,我会非常感激。谢谢!另外,提醒一下,代码仍然设置为调试和测试目的。设置是一个海龟,前面有一个输入箱,右边有一个燃料箱,后面是仓库。
我尝试过:
cobblestone = {2,0,1}
--Putting a piece of cobblestone in--
itemDetails = turtle.getItemDetail()
--Returning name of "minecraft:cobblestone"--
name = string.gsub(itemDetails.name, "minecraft:", "")
print name[1]
到目前为止,这还没有起作用。
pos = {0,0,0}
looking = 0
cobblestone = {2,0,1}
function fuel()
if turtle.getFuelLevel() < 20 then
turtle.select(16)
turtle.refuel(1)
end
end
function left()
turtle.turnLeft()
looking = looking - 1
if looking < 0 then
looking = 3
end
print(looking)
end
function right()
turtle.turnRight()
looking = looking + 1
if looking > 3 then
looking = 0
end
print(looking)
end
function forward()
fuel()
if turtle.forward() then
if looking == 0 then
pos[1] = pos[1] - 1
elseif looking == 1 then
pos[3] = pos[3] - 1
elseif looking == 2 then
pos[1] = pos[1] + 1
elseif looking == 3 then
pos[3] = pos[3] + 1
else
print("wot")
end
end
end
function up()
fuel()
turtle.up()
pos[2] = pos[2] + 1
end
function down()
fuel()
turtle.down()
pos[2] = pos[2] - 1
end
function goHome()
while pos[3] > 0 do
while looking > 1 do
left()
end
forward()
end
while pos[2] > 0 do
down()
end
while pos[1] > 0 do
while looking > 0 do
left()
end
forward()
end
end
while true do
turtle.select(1)
while not turtle.suck() do
sleep(1)
end
itemDetails = turtle.getItemDetail()
name = string.gsub(itemDetails.name, "minecraft:", "")
print(name)
while looking < 2 or looking > 2 do
left()
end
for i = pos[1],name[1]-1 do
forward()
end
while looking > 3 or looking < 3 do
right()
end
for i = pos[3],name[3]-1 do
forward()
end
for i = pos[2],name[2]-1 do
up()
end
while looking < 2 or looking > 2 do
left()
end
turtle.select(1)
turtle.drop()
goHome()
end
我希望能够做到以下几点:
cobblestone = {2,0,1}
--Putting a piece of cobblestone in--
itemDetails = turtle.getItemDetail()
--Returning name of "minecraft:cobblestone"--
name = string.gsub(itemDetails.name, "minecraft:", "")
print name[1]
让海龟打印与cobblestone[1]相同的内容,这应该是2。但是,它返回nil。