Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Pide datos al usuario
- local function pedirParametros()
- print("Largo:")
- local largo = tonumber(read())
- print("Ancho:")
- local ancho = tonumber(read())
- print("Alto:")
- local alto = tonumber(read())
- print("Excavar hacia arriba? (s/n):")
- local dirAltura = read()
- local haciaArriba = (dirAltura == "s")
- print("Excavar hacia la derecha? (d/i):")
- local dirGiro = read()
- local giroDerecha = (dirGiro == "d")
- return largo, ancho, alto, haciaArriba, giroDerecha
- end
- local function avanzar()
- while turtle.detect() do turtle.dig() sleep(0.1) end
- while not turtle.forward() do sleep(0.1) end
- end
- local function subir()
- while turtle.detectUp() do turtle.digUp() sleep(0.1) end
- while not turtle.up() do sleep(0.1) end
- end
- local function bajar()
- while turtle.detectDown() do turtle.digDown() sleep(0.1) end
- while not turtle.down() do sleep(0.1) end
- end
- local function girar(derecha)
- if derecha then
- turtle.turnRight()
- else
- turtle.turnLeft()
- end
- end
- -- Excava una capa y regresa al punto inicial de la capa
- local function excavarCapa(largo, ancho, giroDerecha)
- for fila = 1, ancho do
- for paso = 1, largo - 1 do
- turtle.dig()
- avanzar()
- end
- if fila < ancho then
- if (fila % 2 == 1 and giroDerecha) or (fila % 2 == 0 and not giroDerecha) then
- girar(true)
- turtle.dig()
- avanzar()
- girar(true)
- else
- girar(false)
- turtle.dig()
- avanzar()
- girar(false)
- end
- end
- end
- -- Regreso al inicio de la capa
- if ancho % 2 == 1 then
- girar(true)
- girar(true)
- for i = 1, largo - 1 do avanzar() end
- girar(true)
- for i = 1, ancho - 1 do avanzar() end
- girar(true)
- else
- if giroDerecha then
- girar(true)
- for i = 1, ancho - 1 do avanzar() end
- girar(true)
- else
- girar(false)
- for i = 1, ancho - 1 do avanzar() end
- girar(false)
- end
- end
- end
- -- Regresa al punto de inicio completo (capa 1, esquina)
- local function volverAlInicio(alto, haciaArriba)
- if haciaArriba then
- for i = 1, alto - 1 do bajar() end
- else
- for i = 1, alto - 1 do subir() end
- end
- turtle.turnLeft()
- turtle.turnLeft()
- end
- -- Programa principal
- local function main()
- local largo, ancho, alto, haciaArriba, giroDerecha = pedirParametros()
- for capa = 1, alto do
- excavarCapa(largo, ancho, giroDerecha)
- if capa < alto then
- if haciaArriba then subir() else bajar() end
- end
- end
- volverAlInicio(alto, haciaArriba)
- print("Excavacion terminada. Regresando al inicio.")
- end
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement