From c65028dd5d5d7e188898b550a0e4b147be126abb Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Thu, 30 Aug 2018 20:18:53 +0200 Subject: Initial --- morse.py | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100755 morse.py (limited to 'morse.py') diff --git a/morse.py b/morse.py new file mode 100755 index 0000000..f99e2bd --- /dev/null +++ b/morse.py @@ -0,0 +1,80 @@ +#!/usr/bin/env python3 +import sys + +morse = [ + ".-", + "-...", + "-.-.", + "-..", + ".", + "..-.", + "--.", + "....", + "..", + ".---", + "-.-", + ".-..", + "--", + "-.", + "---", + ".--.", + "--.-", + ".-.", + "...", + "-", + "..-", + "...-", + ".--", + "-..-", + "-.--", + "--..", +] + +mhz = [ + ["shell", "3.505"], + ["halls", "3.515"], + ["slick", "3.522"], + ["trick", "3.532"], + ["boxes", "3.535"], + ["leaks", "3.542"], + ["strobe", "3.545"], + ["bistro", "3.552"], + ["flick", "3.555"], + ["bombs", "3.565"], + ["break", "3.572"], + ["brick", "3.575"], + ["steak", "3.582"], + ["sting", "3.592"], + ["vector", "3.595"], + ["beats", "3.600"], +] + +def find(it, v): + for i, x in enumerate(it): + if x == v: + return i + + return -1 + + +word = [] + +for i, arg in enumerate(sys.argv[1:]): + if arg == "x" or arg == "X": + word.append(-1) + else: + v = find(morse, arg) + if v == -1: + print("Letter {} invalid".format(i+1)) + word.append(v) + +for i in range(5): + w = word[i:] + word[:i] + text = "".join(chr(c + ord('a')) for c in w) + + poss = [] + for [mt, m] in mhz: + if all([a == "`" or a == b for (a,b) in zip(text, mt)]): + poss.append(m) + + print(text + ": " + str(poss)) -- cgit v1.2.3-54-g00ecf