Advertisement
Game4Freak

Touch Code Lock

Dec 19th, 2017
401
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.51 KB | None | 0 0
  1. local mon = peripheral.wrap("top")
  2. mon.setTextScale(0.5)
  3. local pass = "1234"
  4. local passlen = string.len(pass)
  5. local login = false
  6. local press = "";
  7. tblpad = {};
  8. for i=0,10 do
  9. tblpad[i] = {}
  10.     for x=0,10 do
  11.         tblpad[i][x] = "x"
  12.     end
  13. end
  14.  
  15. tblpad[2][6] = "1"
  16. tblpad[4][6] = "2"
  17. tblpad[6][6] = "3"
  18. tblpad[2][7] = "4"
  19. tblpad[4][7] = "5"
  20. tblpad[6][7] = "6"
  21. tblpad[2][8] = "7"
  22. tblpad[4][8] = "8"
  23. tblpad[6][8] = "9"
  24. tblpad[4][9] = "0"
  25.  
  26. function draw()
  27.     mon.clear()
  28.     mon.setBackgroundColor(colors.black)
  29.     drawframe()
  30.     drawpad()
  31.     drawlogin()
  32. end
  33.  
  34. function drawframe()
  35.     mon.clear()
  36.     mon.setBackgroundColor(colors.black)
  37.     mon.setCursorPos(1,1)
  38.     mon.write("+-------------+")
  39.     mon.setCursorPos(1,2)
  40.     mon.write("|")
  41.     mon.setTextColor(colors.cyan)
  42.     mon.write("WarpX Project")
  43.     mon.setCursorPos(15,2)
  44.     mon.setTextColor(colors.white)
  45.     mon.write("|")
  46.     mon.setCursorPos(1,3)
  47.     mon.write("+-----+-------+")
  48.     mon.setCursorPos(1,4)
  49.     mon.write("|")
  50.     mon.setCursorPos(7,4)
  51.     mon.write("|")
  52.     mon.setCursorPos(15,4)
  53.     mon.write("|")
  54.     mon.setCursorPos(1,5)
  55.     mon.write("+-----+-------+")
  56. end
  57.  
  58. function drawlogin()
  59.     mon.setBackgroundColor(colors.cyan)
  60.     mon.setCursorPos(8,4)
  61.     mon.write(" Login ")
  62. end
  63.  
  64. function drawpad()
  65.     mon.setBackgroundColor(colors.black)
  66.     mon.setCursorPos(2,4)
  67.     mon.setBackgroundColor(colors.cyan)
  68.     mon.write("_____")
  69.     mon.setCursorPos(2,6)
  70.     mon.setBackgroundColor(colors.black)
  71.     mon.write("1 2 3")
  72.     mon.setCursorPos(2,7)
  73.     mon.write("4 5 6")
  74.     mon.setCursorPos(2,8)
  75.     mon.write("7 8 9")
  76.     mon.setCursorPos(2,9)
  77.     mon.write("  0  ")
  78. end
  79.  
  80. function countdown(c)
  81.     for i=1,c do
  82.         mon.setCursorPos(1,1)
  83.         mon.write("       ")
  84.         mon.setCursorPos(1,2)
  85.         mon.write("       ")
  86.         mon.setCursorPos(1,3)
  87.         mon.write("   ".. c .."   ")
  88.         mon.setCursorPos(1,4)
  89.         mon.write("       ")
  90.         mon.setCursorPos(1,5)
  91.         mon.write("       ")
  92.         sleep(1)
  93.         c = c - 1
  94.     end
  95. end
  96.  
  97. function dots()
  98.     mon.clear()
  99.     mon.setCursorPos(1,1)
  100.     mon.write("       ")
  101.     mon.setCursorPos(1,2)
  102.     mon.write("       ")
  103.     mon.setCursorPos(1,3)
  104.     mon.write("  ...  ")
  105.     mon.setCursorPos(1,4)
  106.     mon.write("       ")
  107.     mon.setCursorPos(1,5)
  108.     mon.write("       ")
  109. end
  110.  
  111. function opendoor()
  112.     dots()
  113.     --open door
  114.     countdown(5)
  115.     dots()
  116.     --close door
  117.     mon.clear()
  118.     draw()
  119. end
  120.  
  121. function wrongpass()
  122.     mon.clear()
  123.     mon.setCursorPos(1,1)
  124.     mon.write("       ")
  125.     mon.setCursorPos(1,2)
  126.     mon.write(" Wrong ")
  127.     mon.setCursorPos(1,3)
  128.     mon.write("       ")
  129.     mon.setCursorPos(1,4)
  130.     mon.write(" Code! ")
  131.     mon.setCursorPos(1,5)
  132.     mon.write("       ")
  133.     sleep(2)
  134.     countdown(5)
  135.     draw()
  136. end
  137.  
  138. draw()
  139.  
  140. while true do
  141.     while string.len(press) <= 5 do
  142.     event, side, xPos, yPos = os.pullEvent("monitor_touch")
  143.     --if xPos == 8 or xPos == 9 and yPos == 2 then
  144.     --    login = true
  145.     --    mon.setCursorPos(8,2)
  146.     --    mon.write("loging in")
  147.     --end        
  148.    
  149.     if xPos >= 8 and xPos <= 14 and yPos == 4 then
  150.         login = true
  151.         mon.setCursorPos(8,4)
  152.         mon.write("...    ")
  153.         sleep(0.5)
  154.         mon.setCursorPos(8,4)
  155.         mon.write(" ...   ")
  156.         sleep(0.5)
  157.         mon.setCursorPos(8,4)
  158.         mon.write("  ...  ")
  159.         sleep(0.5)
  160.         mon.setCursorPos(8,4)
  161.         mon.write("   ... ")
  162.         sleep(0.5)
  163.     end
  164.     if tblpad[xPos][yPos] ~= "x" then
  165.         mon.setCursorPos(xPos, yPos)
  166.         mon.setBackgroundColor(colors.cyan)
  167.         mon.write(tblpad[xPos][yPos])
  168.         sleep(0.2)
  169.         mon.setCursorPos(xPos, yPos)
  170.         mon.setBackgroundColor(colors.black)
  171.         mon.write(tblpad[xPos][yPos])
  172.         press = press .. tblpad[xPos][yPos]
  173.         mon.setCursorPos(string.len(press)+1, 4)
  174.         mon.setBackgroundColor(colors.cyan)
  175.         mon.write("*")
  176.     end
  177.         if string.len(press) == passlen and login == true and press == pass then
  178.             press = ""
  179.             login = false
  180.             mon.setCursorPos(8,4)
  181.             mon.setBackgroundColor(colors.green)
  182.             mon.write("Success")
  183.         elseif press ~= pass and login == true then
  184.             press = ""
  185.             login = false
  186.             mon.setCursorPos(8,4)
  187.             mon.setBackgroundColor(colors.red)
  188.             mon.write("Failed ")
  189.         end
  190.    
  191.     end
  192. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement