-- argument local tArgs = { ... } if #tArgs ~= 2 then print( "Usage: island " ) return end -- var local height = tonumber( tArgs[1] ) local size = tonumber( tArgs[2] ) -- function function countNeededBlock(size) needed = 0; for i=size,1,-2 do needed = needed + size*size; end return needed; end function countAvailableBlock() count = 0; for i=1,16 do count = count + turtle.getItemCount(i); end return count; end function calculateFuelNeed(size,height) return height*2 + countNeededBlock(size) + size; end -- main -- report print("need " .. countNeededBlock(size) .. " block to do so"); print(countAvailableBlock() .. " block available"); print("need " .. calculateFuelNeed(size,height) .. " moves"); print(turtle.getFuelLevel() .. " fuel available"); -- error control if (countAvailableBlock() < countNeededBlock(size)) then print("need more block "); return; end; if turtle.getFuelLevel() < calculateFuelNeed(size,height) then print("need more fuel "); return; end; if height <= size/2 then print("should climb higher") return end -- main loop --rise for i=1,height do turtle.up() end for i=size,1,-2 do os.run({},"/rom/programs/turtle/platform",0,i); turtle.forward(); turtle.turnRight(); turtle.forward(); if size%2 == 1 then turtle.forward(); end turtle.turnLeft(); turtle.down(); end -- fall for i=1,height do turtle.down() end