Advertisement
Dragoon209

scores

Dec 26th, 2023
928
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 6.64 KB | Source Code | 0 0
  1. rednet.open("left")
  2. rednet.broadcast('computer: ' .. os.getComputerLabel(), 'debug')
  3.  
  4.  
  5. rednet.broadcast('Program Start', 'debug')
  6.  
  7. function fr()
  8.     local result = turtle.forward()
  9.     rednet.broadcast("Moving Forward", "debug")
  10.     rednet.broadcast(result, "debug")
  11.     return(result)
  12. end
  13.  
  14. function tl()
  15.     local result = turtle.turnLeft()
  16.     rednet.broadcast("Turning Left", "debug")
  17.     rednet.broadcast(result, "debug")
  18.     return(result)
  19. end
  20.  
  21. function tr()
  22.     local result = turtle.turnRight()
  23.     rednet.broadcast("Turning Right", "debug")
  24.     rednet.broadcast(result, "debug")
  25.     return(result)
  26. end
  27.  
  28. function ta()
  29.     local result1 = turtle.turnRight()
  30.     local result2 = turtle.turnRight()
  31.     local result = false
  32.     rednet.broadcast("Turn Around Bright Eyes", "debug")
  33.     if (result1 and result2)
  34.         then
  35.             rednet.broadcast("true", "debug")
  36.             result = true
  37.         end
  38.     return(result)
  39. end
  40.  
  41. function bk()
  42.     local result = turtle.back()
  43.     rednet.broadcast("Moving Back", "debug")
  44.     rednet.broadcast(result, "debug")
  45.     return(result)
  46. end
  47.  
  48. function up()
  49.     local result = turtle.up()
  50.     rednet.broadcast("Moving On Up!", "debug")
  51.     rednet.broadcast(result, "debug")
  52.     return(result)
  53. end
  54.  
  55. function dn()
  56.     local result = turtle.down()
  57.     rednet.broadcast("Getting Down", "debug")
  58.     rednet.broadcast(result, "debug")
  59.     return(result)
  60. end
  61.  
  62. function checkLeft()
  63.     tl()
  64.     local result = turtle.detect()
  65.     rednet.broadcast("Check left", "debug")
  66.     rednet.broadcast(result, "debug")
  67.     return result
  68. end
  69.  
  70. function replace(slot)
  71.     local result1 = turtle.dig()
  72.     local result2 = turtle.select(slot)
  73.     local result3 = turtle.place()
  74.     rednet.broadcast("Replacing...", "debug")
  75. --    rednet.send(2, "dig:" .. result1 .. " select:" .. result2 .. " place:" .. result3)
  76. end
  77.  
  78. function nextDigit()
  79.     local result1 = turtle.turnRight()
  80.     local result2 = turtle.forward()
  81.     local result3 = turtle.turnLeft()
  82.     rednet.broadcast("Next Digit", "debug")
  83. --    rednet.send(2, "right:" .. result1 .. " fwd:" .. result2 .. " left:" .. result3)
  84. end
  85.  
  86. function goHome()
  87.     rednet.broadcast("Mama, I'm Coming Home", "debug")
  88.     local floor = true
  89.     while floor do floor = dn() end
  90.  
  91.     local count = 0
  92.  
  93.     while count <= 30 do
  94.         if checkHome()
  95.         then
  96.             rednet.broadcast("found home, starting update", "debug")
  97.             ta()
  98.             return true
  99.         else
  100.             local success = fr()
  101.             if success == false then
  102.                 local result = checkLeft()
  103.                 if result
  104.                 then
  105.                     ta()
  106.                 else
  107.                     fr()
  108.                 end
  109.  
  110.             end
  111.         end
  112.  
  113.         count = count+1
  114.     end
  115.  
  116.         rednet.broadcast("No path found. Halting.", "debug")
  117.         return false
  118. end
  119.  
  120. function checkHome()
  121.     rednet.broadcast("Checking for home...", "debug")
  122.     local has_block, data = turtle.inspect()
  123.    
  124.     if data.name == "minecraft:diorite"
  125.     then
  126.         rednet.broadcast("Home alone!", "debug")
  127.         return true
  128.     else
  129.         rednet.broadcast("oh no! No home!", "debug")
  130.         return false
  131.     end
  132.  
  133. end
  134.  
  135. function updateScores(score1, score2)
  136.     rednet.broadcast("Updating scores", "debug")
  137.     ta()
  138.     local result1 = checkHome()
  139.  
  140.     if result1 == false
  141.     then
  142.         local result2 = goHome()
  143.         if result2 == false
  144.         then
  145.             rednet.broadcast("Update score failed.", "debug")
  146.             return false
  147.         end
  148.     ta()
  149.     end
  150.  
  151.  
  152.     local scores = {}
  153.     scores[1] = score1
  154.     scores[2] = score2
  155.     rednet.broadcast(scores[1], "debug")
  156.     rednet.broadcast(scores[2], "debug")    
  157.     print(scores[1])
  158.     print(scores[2])
  159.  
  160.     local length = {}
  161.     length[1] = string.len(scores[1])
  162.     length[2] = string.len(scores[2])
  163.     rednet.broadcast("length1:" .. length[1], "debug")
  164.     rednet.broadcast("length2:" .. length[2], "debug")
  165.     local digits = {}
  166.     for i=1, 8 do
  167.         digits[i] = 1
  168.     end
  169.    
  170.     digits[4] = string.sub(scores[1],string.len(scores[1])) + 3
  171.     if string.len(scores[1]) > 1 then digits[3] = string.sub(scores[1], string.len(scores[1])-1, string.len(scores[1])-1) + 3 end
  172.     if string.len(scores[1]) > 2 then digits[2] = string.sub(scores[1], string.len(scores[1])-2, string.len(scores[1])-2) + 3 end
  173.     if string.len(scores[1]) > 3 then digits[1] = string.sub(scores[1], string.len(scores[1])-3, string.len(scores[1])-3) + 3 end
  174.    
  175.     digits[8] = string.sub(scores[2],string.len(scores[2])) + 3
  176.     if string.len(scores[2]) > 1 then digits[7] = string.sub(scores[2], string.len(scores[2])-1, string.len(scores[2])-1) + 3 end
  177.     if string.len(scores[2]) > 2 then digits[6] = string.sub(scores[2], string.len(scores[2])-2, string.len(scores[2])-2) + 3 end
  178.     if string.len(scores[2]) > 3 then digits[5] = string.sub(scores[2], string.len(scores[2])-3, string.len(scores[2])-3) + 3 end
  179.    
  180.     ta()
  181.     tr()
  182.     fr()
  183.     ta()
  184.     up()
  185.     up()
  186.     replace(digits[1])
  187.     nextDigit()
  188.     replace(digits[2])
  189.     nextDigit()
  190.     replace(digits[3])
  191.     nextDigit()
  192.     replace(digits[4])
  193.     tr()
  194.     replace(digits[5])
  195.     nextDigit()
  196.     replace(digits[6])
  197.     nextDigit()
  198.     replace(digits[7])
  199.     nextDigit()
  200.     replace(digits[8])
  201.     dn()
  202.     dn()
  203.     tl()
  204.     fr()
  205.     fr()
  206.     fr()
  207.     fr()
  208.     tl()
  209.     fr()
  210.     fr()
  211.     fr()
  212.     checkHome()
  213.     ta()    
  214. end
  215.  
  216. function waitMsg()
  217.     local ID, msg = rednet.receive()
  218.     print(msg)
  219.     rednet.broadcast("received: " .. msg, "debug")
  220.     if msg=="fr" then fr() end
  221.     if msg=="tl" then tl() end
  222.     if msg=="tr" then tr() end
  223.     if msg=="ta" then ta() end
  224.     if msg=="bk" then bk() end
  225.     if msg=="goHome" then goHome() end
  226.     if msg=="checkHome"
  227.         then
  228.             if checkHome()
  229.                 then
  230.                     print("already Home")
  231.                     rednet.broadcast("alread home", "debug")
  232.                 end
  233.         end
  234.     if msg=="replace" then replace() end
  235.     if msg=="updateScores"
  236.         then
  237.             local score1 = math.random(0,9999)
  238.             local score2 = math.random(0,9999)
  239.             updateScores(score1, score2)
  240.         end
  241.     if string.find(msg, "pushScores")
  242.         then
  243.             local args = {}
  244.             local i = 1
  245.             for token in string.gmatch(msg, "[^%s]+") do
  246.                 args[i] = token
  247.                 i=i+1
  248.             end
  249.         updateScores(args[2], args[3])
  250.     end
  251.  
  252.     rednet.broadcast("success", "debug")
  253. end
  254.  
  255. while true do waitMsg() end
  256.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement