Advertisement
TraerAlone

Untitled

Jun 23rd, 2016
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.17 KB | None | 0 0
  1. local r = require("robot")
  2. local c = require("component")
  3. local computer = require("computer")
  4. local g = c.geolyzer
  5. --local gen = c.generator
  6. rmin = 2,3
  7. rmax = 2,7
  8. height = 64
  9. fuel = 0
  10. xO = 0
  11. yO = 0
  12. zO = 0
  13. fO = 3
  14. coal = 64 * 1
  15. -----
  16. function go()
  17.   while not r.forward() do
  18.     r.swing()
  19.   end
  20. end
  21.  
  22. function goup()
  23.   while not r.up do
  24.     r.swingUp()
  25.   end
  26. end
  27. --
  28. function godown()
  29.   while not r.down() do
  30.     r.swingDown()
  31.   end
  32. end
  33. -----
  34. function gotospot(x, y, z)
  35.   xO = xO + x
  36.   yO = yO + y
  37.   zO = zO + z
  38.   if x < 0 then
  39.     p = 1
  40.     x = 0 - x
  41.   else
  42.     p = 3
  43.   end
  44.   while fO ~= p do
  45.     r.turnRight()      
  46.     fO = (fO + 1) % 4
  47.   end
  48.   for i1 = 1, x do
  49.     go()
  50.   end
  51.   if y < 0 then
  52.     p = 2
  53.     y = 0 - y
  54.   else
  55.     p = 0
  56.   end
  57.   while fO ~= p do
  58.     r.turnRight()
  59.     fO = (fO + 1) % 4
  60.   end
  61.   for i2 = 1, y do
  62.     go()
  63.   end
  64.   if z < 0 then
  65.     z = 0 - z
  66.     for i3 = 1, z do
  67.       godown()
  68.     end
  69.   else
  70.     for i3 = 1, z do
  71.       goup()
  72.     end
  73.   end
  74. --  while not fO ~= 3 do
  75. --    r.turnRight()
  76.   end
  77. end
  78. -----------  
  79. function scan( XR, YR, ZR )
  80.   for x = 1, 5 do
  81.     for y = 1, 5 do
  82.       scanresult = g.scan(x, y)
  83.       for z = 1, height do
  84.         if scanresult[64 - z + 1] > rmin and scanresult[64 - z + 1] < rmax then
  85.           XR = XR + x
  86.           YR = YR + y
  87.           ZR = ZR + z
  88.           z = 32 - z
  89.           gotospot(x, y, z)
  90.           scan(XR, YR, ZR) --!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  91.           return 0
  92.         end
  93.       end
  94.     end
  95.   end
  96.   gotospot(-XR, -YR, -ZR)
  97. end
  98.  
  99. --function checkfuel()
  100. --  if (computer.maxEnergy() - computer.energy()) > 1000 then
  101. --    for i=1, 32 do
  102. --      robot.select(i)
  103. --      if gen.insert() then
  104. --        fuel = fuel + 1000
  105. --        checkfuel()
  106. --      else
  107. --        if fuel > 1000000 then
  108. --          comeback()
  109. --        end
  110. --      end
  111. --    end
  112. --  end
  113. --end
  114.  
  115. function comeback()
  116.   gotospot(xO, yO, zO)
  117. end
  118.  
  119.  
  120. function main()
  121. --  fuel = 1000000 + coal * 1000
  122.   for i = 1, -1 do
  123. --    checkfuel()
  124.     scan(0, 0, 0)
  125.     gotospot(10, 0 , 0)
  126.   end
  127. end
  128. gotospot(-1, -1, 1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement