mah17

Dom Item Randomizer

Nov 13th, 2014
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.24 KB | None | 0 0
  1. rednet.close("left")
  2. rednet.open("left")
  3. math.randomseed(os.time())
  4.  
  5. -- To the right P1, to the left P2
  6. local PLAYER_1 = 4
  7. local PLAYER_2 = 5
  8.  
  9. local MAX_NUM = 50
  10.  
  11. function dumpInv( side )
  12.     if side == "left" then
  13.         turtle.turnLeft()
  14.     elseif side == "right" then
  15.         turtle.turnRight()
  16.     else
  17.         return
  18.     end
  19.    
  20.     for i=1,16 do
  21.         turtle.select(i)
  22.         turtle.drop()
  23.     end
  24.    
  25.     if side == "left" then
  26.         turtle.turnRight()
  27.     elseif side == "right" then
  28.         turtle.turnLeft()
  29.     end
  30.    
  31. end
  32.  
  33. function dumpInvUp()
  34.     for i=1,16 do
  35.         turtle.select(i)
  36.         turtle.dropDown()
  37.     end
  38. end
  39.  
  40. function replySend( id, message )
  41.     while true do
  42.         rednet.send(id, message)
  43.         local e, s, d = os.pullEvent()
  44.         if e == "rednet_message" and s == id then
  45.             return d
  46.         end
  47.        
  48.     end
  49.     return nil
  50. end
  51.  
  52. playerMessages = {}
  53.  
  54. -- Are the player turtles ready?
  55. playerMessages["p1r"] = nil
  56. playerMessages["p2r"] = nil
  57.  
  58. while playerMessages["p1r"] == nil or playerMessages["p2r"] == nil do
  59.     if replySend(PLAYER_1, "init") == "true" then
  60.         playerMessages["p1r"] = "true"
  61.     end
  62.     if replySend(PLAYER_2, "init") == "true" then
  63.         playerMessages["p2r"] = "true"
  64.     end
  65. end
  66.  
  67. sleep(1)
  68.  
  69. while true do
  70.     -- Pick random number and set default guess values
  71.     local rand = math.random(MAX_NUM)
  72.     print("Answer:"..tostring(rand))
  73.     playerMessages["p1g"] = nil
  74.     playerMessages["p2g"] = nil
  75.    
  76.     playerMessages["p1g"] = replySend(PLAYER_1, "guess")
  77.     replySend(PLAYER_1, "guessreceived")
  78.     print("P1:"..tostring(playerMessages["p1g"]))
  79.    
  80.     playerMessages["p2g"] = replySend(PLAYER_2, "guess")
  81.     replySend(PLAYER_2, "guessreceived")
  82.     print("P2:"..tostring(playerMessages["p2g"]))
  83.    
  84.     if math.abs(rand - playerMessages["p1g"]) <
  85.     math.abs(rand - playerMessages["p2g"]) then
  86.         print("I AM THE LAW!") -- P1 wins
  87.         dumpInv("right")
  88.     elseif math.abs(rand - playerMessages["p1g"]) >
  89.     math.abs(rand - playerMessages["p2g"]) then
  90.         print("I AM THE LAW!!") -- P2 wins
  91.         dumpInv("left")
  92.     else
  93.         print("I AM THE LAW!!!") -- Tie
  94.         local tiebreaker = math.random(2)
  95.         print("tiebreaker:P"..tostring(tiebreaker))
  96.         if tiebreaker == 1 then dumpInv("right") end
  97.         if tiebreaker == 2 then dumpInv("left") end
  98.         if tiebreaker ~= 1 and tiebreaker ~=2 then dumpInvUp() end --WTF
  99.     end
  100.    
  101.     sleep(1)
  102.    
  103. end
Advertisement
Add Comment
Please, Sign In to add comment