Posted 08 February 2016 - 08:42 PM
Hello,
I'm new to this forum and programming for the most part.
The code I have linked below is my first attempt at creation of a turtle program intended to dig a room in specified dimensions by the user. It will eventually have other options added to it, but for now I am running into a problem where when the "width" of the room stored in the variable "W" is an odd number, when the "length" is advanced forward it digs down rather than dig up. I am not sure if I require an additional "if" statement or something else to correct this. Keep in mind that this only happens when width of the room is an odd number… width as an even number and length and width as either even or odd numbers work correctly.
Thanks in advance for the help.
I'm new to this forum and programming for the most part.
The code I have linked below is my first attempt at creation of a turtle program intended to dig a room in specified dimensions by the user. It will eventually have other options added to it, but for now I am running into a problem where when the "width" of the room stored in the variable "W" is an odd number, when the "length" is advanced forward it digs down rather than dig up. I am not sure if I require an additional "if" statement or something else to correct this. Keep in mind that this only happens when width of the room is an odd number… width as an even number and length and width as either even or odd numbers work correctly.
Thanks in advance for the help.
local L = 0
local W = 0
local D = 0
local lenght = 0
local width = 0
local depth = 0
function clear()
term.clear()
term.setCursorPos(1,1)
end
function stopProgram()
print("(Hold Ctrl+T to end program.)")
end
function askLWD()
print("Enter numerical values that are greater than one for the following.")
write("Lenght: ") L = tonumber(read())
write("Width : ") W = tonumber(read())
write("Depth : ") D = tonumber(read())
end
function digDown()
while turtle.detectDown() do
turtle.digDown()
end
turtle.down()
end
function digUp()
while turtle.detectUp() do
turtle.digUp()
os.sleep(.5)
end
turtle.up()
end
function digRight()
turtle.turnRight()
while turtle.detect() do
turtle.dig()
os.sleep(.5)
end
turtle.forward()
turtle.turnLeft()
end
function digLeft()
turtle.turnLeft()
while turtle.detect() do
turtle.dig()
os.sleep(.5)
end
turtle.forward()
turtle.turnRight()
end
clear()
stopProgram()
print("Place the turtle 'IN THE BLOCK' that is top left corner of the room facing the direction that will be the lenght of the room.")
print("Press enter to continue...")
read()
clear()
stopProgram()
askLWD()
while type(L) ~= "number" or type(W) ~= "number" or type(D) ~= "number" do
clear()
stopProgram()
print("Error... You must enter a valid number greater than zero for all 3 values.")
askLWD()
end
print("The room will be "..L.." in lenght,"..W.." in width &"..D.."in depth.")
print("Press enter to begin creating room.")
stopProgram()
read()
for lenght = 1, L do
for width = 1, W do
for depth = 1, D do
if width % 2 ~= 0 then
if depth ~= D then
digDown()
else
end
else
if depth ~= D then
digUp()
else
end
end
end
if lenght % 2 ~= 0 then
if width ~= W then
digRight()
else
end
else
if width ~= W then
digLeft()
else
end
end
end
if lenght ~= L then
while turtle.detect() do
turtle.dig()
os.sleep(.5)
end
turtle.forward()
else
end
end