SHOW:
|
|
- or go back to the newest paste.
1 | - | local c = require("component") |
1 | + | local c = require("component") |
2 | - | local keypad = c.os_keypad |
2 | + | local keypad = c.os_keypad |
3 | - | local computer = require("computer") |
3 | + | local computer = require("computer") |
4 | - | local event = require("event") |
4 | + | local event = require("event") |
5 | - | |
5 | + | |
6 | - | local code = "12345678" |
6 | + | local code = "12345678" -- Your code (Max 8 digits to fit on keypad display) |
7 | - | local user_code = "" |
7 | + | local user_code = "" -- Variable that stores input |
8 | - | |
8 | + | |
9 | - | local run = true |
9 | + | local run = true |
10 | - | while run do |
10 | + | while run do |
11 | - | local e, address, _, key = event.pull(1000) |
11 | + | local e, address, _, key = event.pull(1000) |
12 | - | if (e and e == "interrupted") then |
12 | + | if (e and e == "interrupted") then -- Kill program when ctrl + c is pressed |
13 | - | run = false |
13 | + | run = false |
14 | - | elseif (e and e == "keypad") then |
14 | + | elseif (e and e == "keypad") then |
15 | - | if (key and key == "*") then |
15 | + | if (key and key == "*") then -- Uses star button as reset key |
16 | - | user_code = "" |
16 | + | user_code = "" |
17 | - | keypad.setDisplay("") |
17 | + | keypad.setDisplay("") |
18 | - | elseif (key) then |
18 | + | elseif (key) then -- On key other than reset key add it to user_code |
19 | - | user_code = user_code .. key |
19 | + | user_code = user_code .. key |
20 | - | keypad.setDisplay(user_code) |
20 | + | keypad.setDisplay(user_code) -- Update display to updated input string |
21 | - | end |
21 | + | end |
22 | - | if (string.len(code) == string.len(user_code)) then |
22 | + | if (string.len(code) == string.len(user_code)) then -- If code and user_code are the same length: |
23 | - | if (code == user_code) then |
23 | + | if (code == user_code) then -- Test if they match |
24 | - | computer.beep(2000) |
24 | + | computer.beep(2000) |
25 | - | print("Code correct!") |
25 | + | print("Code correct!") |
26 | - | keypad.setDisplay("CORRECT") |
26 | + | keypad.setDisplay("CORRECT") |
27 | - | user_code = "" |
27 | + | user_code = "" |
28 | - | else |
28 | + | else |
29 | - | computer.beep(100) |
29 | + | computer.beep(100) |
30 | - | print("Wrong code!") |
30 | + | print("Wrong code!") |
31 | - | keypad.setDisplay("WRONG") |
31 | + | keypad.setDisplay("WRONG") |
32 | - | user_code = "" |
32 | + | user_code = "" |
33 | - | end |
33 | + | end |
34 | - | end |
34 | + | end |
35 | - | end |
35 | + | elseif (e and e == "magData") then -- If mag card is detected, check if stored string matches code |
36 | if (key == code) then | |
37 | keypad.setDisplay("CORRECT") | |
38 | computer.beep(2000) | |
39 | else | |
40 | keypad.setDisplay("DENIED") | |
41 | computer.beep(100) | |
42 | end | |
43 | end | |
44 | end |