Advertisement
GRxRedZero

Umgekehrte Pyramide

May 6th, 2020
916
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.99 KB | None | 0 0
  1. -- Baut eine umgekehrte Pyramide by GRxRedZero
  2. height = tonumber(io.read())
  3. length = 2
  4. slot = 16
  5.  
  6. -- Nimmt zuerst den letzten Slot des Turtles, damit gewährleistet wird,
  7. -- dass das richtige Item gesetzt wird!
  8. function changeSlotIfNecessary(slot)
  9.     local newslot = slot
  10.     while newslot > 1 do
  11.         if turtle.getItemCount(newslot) == 0 then
  12.             if (newslot > 1) and (newslot < 17) then
  13.                 turtle.select(newslot - 1)
  14.             end
  15.             newslot = newslot - 1
  16.         else
  17.             break
  18.         end
  19.     end
  20.    
  21.     if turtle.getItemCount(1) == 0 then
  22.         -- Warte auf Eingabe wenn keine Items im ersten Slot sind.
  23.         local answer
  24.         repeat
  25.             io.write("Continue to build the pyramid (y/n)? ")
  26.             io.flush()
  27.             answer = io.read()
  28.         until answer == "y" or answer == "Y"
  29.         if answer == "y" or answer == "Y" then
  30.             newslot = 16
  31.         end
  32.     end
  33.     return newslot
  34. end
  35.  
  36. -- Funktion zum Platzieren der Linie unterhalb des Turtles
  37. function digAndPlace()
  38.     turtle.dig()
  39.     turtle.forward()
  40.     turtle.digDown()
  41.     slot = changeSlotIfNecessary(slot)
  42.     turtle.placeDown()
  43. end
  44.  
  45. -- Funktion zum Starten des Baus für die Pyramide
  46. function startPyramid()
  47.     turtle.digUp()
  48.     turtle.up()
  49.     slot = changeSlotIfNecessary(slot)
  50.     turtle.placeDown()
  51.     turtle.digUp()
  52.     turtle.up()
  53. end
  54.  
  55. -- Programm Start!
  56. while (height >= length + 1 / 1) do
  57.     -- Baut die Pyramide
  58.     startPyramid()
  59.     for i = 1, height, 1 do
  60.         digAndPlace()
  61.         turtle.turnRight()
  62.         for l = 1, length - 1, 1 do
  63.             digAndPlace()
  64.         end
  65.         turtle.turnRight()
  66.  
  67.         for j = 1, 4, 1 do
  68.             for k = 1, length, 1 do
  69.                 digAndPlace()
  70.             end
  71.             if j < 4 then
  72.                 turtle.turnRight()
  73.             end
  74.             turtle.digUp()
  75.             turtle.up()
  76.         end
  77.         length = length + 2
  78.     end
  79. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement