Compare commits
2 Commits
2801a3f4cd
...
07d9b659e3
Author | SHA1 | Date | |
---|---|---|---|
|
07d9b659e3 | ||
|
d58ae87f8c |
11
shell.nix
Normal file
11
shell.nix
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{ pkgs ? import <nixpkgs> {} }:
|
||||||
|
let
|
||||||
|
my-python-packages = ps: with ps; [
|
||||||
|
prompt-toolkit
|
||||||
|
pyautogui
|
||||||
|
opencv4
|
||||||
|
numpy
|
||||||
|
# other python packages
|
||||||
|
];
|
||||||
|
my-python = pkgs.python3.withPackages my-python-packages;
|
||||||
|
in my-python.env
|
@ -1,5 +1,6 @@
|
|||||||
from modules.wires import WiresModule
|
from modules.wires import WiresModule
|
||||||
from modules.button import ButtonModule
|
from modules.button import ButtonModule
|
||||||
|
from modules.simon import SimonModule
|
||||||
from modules.comp_wires import ComplicatedWiresModule
|
from modules.comp_wires import ComplicatedWiresModule
|
||||||
from modules.password import PasswordModule
|
from modules.password import PasswordModule
|
||||||
|
|
||||||
@ -7,7 +8,7 @@ modules = {
|
|||||||
'wires': WiresModule,
|
'wires': WiresModule,
|
||||||
'button': ButtonModule,
|
'button': ButtonModule,
|
||||||
'keypad': None,
|
'keypad': None,
|
||||||
'simon': None,
|
'simon': SimonModule,
|
||||||
'first': None,
|
'first': None,
|
||||||
'memory': None,
|
'memory': None,
|
||||||
'morse': None,
|
'morse': None,
|
||||||
|
74
src/modules/simon.py
Normal file
74
src/modules/simon.py
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
from prompt_toolkit import prompt
|
||||||
|
from prompt_toolkit.completion import WordCompleter
|
||||||
|
|
||||||
|
class SimonModule:
|
||||||
|
buttonmapping = {
|
||||||
|
"vowel": {
|
||||||
|
0: {
|
||||||
|
"red": "blue",
|
||||||
|
"blue": "red",
|
||||||
|
"green": "yellow",
|
||||||
|
"yellow": "green",
|
||||||
|
},
|
||||||
|
1: {
|
||||||
|
"red": "yellow",
|
||||||
|
"blue": "green",
|
||||||
|
"green": "blue",
|
||||||
|
"yellow": "red",
|
||||||
|
},
|
||||||
|
2: {
|
||||||
|
"red": "green",
|
||||||
|
"blue": "red",
|
||||||
|
"green": "yellow",
|
||||||
|
"yellow": "blue",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"novowel": {
|
||||||
|
0: {
|
||||||
|
"red": "blue",
|
||||||
|
"blue": "yellow",
|
||||||
|
"green": "green",
|
||||||
|
"yellow": "red",
|
||||||
|
},
|
||||||
|
1: {
|
||||||
|
"red": "red",
|
||||||
|
"blue": "blue",
|
||||||
|
"green": "yellow",
|
||||||
|
"yellow": "green",
|
||||||
|
},
|
||||||
|
2: {
|
||||||
|
"red": "yellow",
|
||||||
|
"blue": "green",
|
||||||
|
"green": "blue",
|
||||||
|
"yellow": "red",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
def __init__(self, strikes, isvowel):
|
||||||
|
self.strikes = strikes
|
||||||
|
self.isvowel = isvowel
|
||||||
|
self.isvowel = "vowel" if isvowel else "novowel"
|
||||||
|
|
||||||
|
def convert(self, color):
|
||||||
|
return self.buttonmapping[self.isvowel][self.strikes][color]
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def interactive(cls, state, cmdline):
|
||||||
|
try:
|
||||||
|
obj = cls(state.strikes, state.serial.vowel)
|
||||||
|
except AttributeError:
|
||||||
|
print("you need to specify a serial number before running this.")
|
||||||
|
return
|
||||||
|
|
||||||
|
while True:
|
||||||
|
print("enter information")
|
||||||
|
user_in = prompt("simon> ")
|
||||||
|
if user_in == "strike":
|
||||||
|
state.strikes += 1
|
||||||
|
obj.strikes += 1
|
||||||
|
elif user_in == "quit":
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
for i in user_in.split(" "):
|
||||||
|
print(obj.convert(i))
|
Loading…
Reference in New Issue
Block a user