Advertisement
Guest User

slotv1

a guest
Jan 29th, 2020
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.16 KB | None | 0 0
  1. rs.setOutput("top", true)
  2.  
  3. monitor = peripheral.wrap("back")
  4.  
  5. monitor.setTextScale(.5)
  6.  
  7. local function checkWins(values)
  8.     local wins = 0
  9.                    
  10.     for i=1,3 do    
  11.         if (values[i] == "X" and values[i+3] == "X" and values[i+6] == "X") then
  12.             wins = wins + 1
  13.         end
  14.     end
  15.  
  16.     return wins
  17. end
  18.  
  19. local function doDisplay(values, wins, credits)
  20.     monitor.clear()
  21.    
  22.     monitor.setCursorPos(5,1)
  23.  
  24.     if (wins == 0) then
  25.         monitor.write("You Lose")
  26.     else
  27.         monitor.write("Win x"..wins.."!")
  28.     end
  29.  
  30.     monitor.setCursorPos(5,3)
  31.     monitor.write("+-+-+-+")
  32.     monitor.setCursorPos(5,4)
  33.     monitor.write("|"..values[1].."|"..values[4].."|"..values[7].."|")
  34.     monitor.setCursorPos(5,5)
  35.     monitor.write("+-+-+-+")
  36.     monitor.setCursorPos(5,6)
  37.     monitor.write("|"..values[2].."|"..values[5].."|"..values[8].."|")
  38.     monitor.setCursorPos(5,7)
  39.     monitor.write("+-+-+-+")
  40.     monitor.setCursorPos(5,8)
  41.     monitor.write("|"..values[3].."|"..values[6].."|"..values[9].."|")
  42.     monitor.setCursorPos(5,9)
  43.     monitor.write("+-+-+-+")
  44.    
  45.     monitor.setCursorPos(1,10)
  46.     monitor.write("Free Play")
  47. --    monitor.write("Credits :"..credits - 1)
  48. end
  49.  
  50. local function play(credits)
  51.     local valuePool = {"O","O","O","O","O","O","X","X","X","X"}
  52.    
  53.     local randomValues = {}
  54.    
  55.     for i=1,10 do
  56.         randomValues[i] = valuePool[math.random(1, 10)]
  57.     end
  58.    
  59.     wins = checkWins(randomValues)
  60.    
  61.     doDisplay(randomValues, wins, credits)
  62.    
  63.     if wins > 0 then
  64.         for i=1,wins do
  65.             rs.setOutput("bottom", true)
  66.             os.sleep(.7)
  67.             rs.setOutput("bottom", false)
  68.         end
  69.     end
  70.                  
  71. end
  72.  
  73. local function screenSaver(credits)
  74.     monitor.clear()    
  75.    
  76.     --[[monitor.setCursorPos(3,3)
  77.     monitor.write("Credits: "..credits, 0)
  78.    
  79.     if (credits == 0) then
  80.         monitor.setCursorPos(3,5)
  81.         monitor.write("Add credits", 1)
  82.     end
  83.    
  84.     if (credits > 0) then
  85.         monitor.setCursorPos(1,5)
  86.         monitor.write("Pull the lever")
  87.         monitor.setCursorPos(1,6)
  88.         monitor.write("to play -->")
  89.     end]]
  90.     monitor.setCursorPos(3, 5)
  91.     monitor.write("Free Play")
  92. end
  93.  
  94. local function main()
  95.     --credits = 0
  96.  
  97.     screenSaver(credits)
  98.    
  99.     local timeCreditAdded = os.clock()
  100.    
  101.     leverReset = false
  102.  
  103.     while true do
  104.         os.pullEvent("redstone")
  105.        
  106.         if (rs.getInput("right") and (os.clock() - timeCreditAdded) > .5) then
  107.             credits = credits + 1
  108.            
  109.             screenSaver(credits)
  110.  
  111.             timeCreditAdded = os.clock()
  112.         elseif (rs.getInput("left") and leverReset) then
  113.             --if ((os.clock() - timeCreditAdded) > 3) then
  114.                 leverReset = false
  115.        
  116.                 play(credits)
  117.            
  118.                 --credits = credits - 1
  119.        
  120.                 --screenSaver(credits)
  121.             --end            
  122.         else
  123.             leverReset = true
  124.         end
  125.        
  126.         if (credits == 0) then
  127.             screenSaver(0)
  128.         end
  129.     end
  130. end
  131.  
  132. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement