forked from tuvo1106/python_design_patterns
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathswitch.py
More file actions
31 lines (24 loc) · 680 Bytes
/
switch.py
File metadata and controls
31 lines (24 loc) · 680 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from enum import Enum, auto
class State(Enum):
LOCKED = auto()
FAILED = auto()
UNLOCKED = auto()
if __name__ == '__main__':
CODE = '1234'
STATE = State.LOCKED
ENTRY = ''
while True:
if STATE == State.LOCKED:
ENTRY += input(ENTRY)
if ENTRY == CODE:
STATE = State.UNLOCKED
if not CODE.startswith(ENTRY):
# the CODE is wrong
STATE = State.FAILED
elif STATE == State.FAILED:
print('\nFAILED')
ENTRY = ''
STATE = State.LOCKED
elif STATE == State.UNLOCKED:
print('\nUNLOCKED')
break