import csv
|
|
|
|
alphabet = [["A", ".-"],
|
|
["B", "-..."],
|
|
["C", "-.-."],
|
|
["D", "-.."],
|
|
["E", "."],
|
|
["F", "..-."],
|
|
["G", "--."],
|
|
["H", "...."],
|
|
["I", ".."],
|
|
["J", ".---"],
|
|
["K", "-.-"],
|
|
["L", ".-.."],
|
|
["M", "--"],
|
|
["N", "-."],
|
|
["O", "---"],
|
|
["P", ".--."],
|
|
["Q", "--.-"],
|
|
["R", ".-."],
|
|
["S", "..."],
|
|
["T", "-"],
|
|
["U", "..-"],
|
|
["V", "...-"],
|
|
["W", ".--"],
|
|
["X", "-..-"],
|
|
["Y", "-.--"],
|
|
["Z", "--.."]]
|
|
|
|
dictDE_file = open("wordlist-german.txt", "r")
|
|
dictEN_file = open("wordlist-english.txt", "r")
|
|
|
|
reader = csv.reader(dictDE_file)
|
|
dictDE = [row[0].upper() for row in reader]
|
|
reader = csv.reader(dictEN_file)
|
|
dictEN = [row[0].upper() for row in reader]
|
|
dictionary = dictEN
|
|
|
|
morse_cipher = "..-..--..-......-"
|
|
|
|
|
|
def latin_to_morse(word):
|
|
result = ""
|
|
for letter in word:
|
|
for latin, morse in alphabet:
|
|
if letter == latin:
|
|
result += morse
|
|
return result
|
|
|
|
|
|
def guess_chars(morse_text, plain_text=""):
|
|
if morse_text == "":
|
|
char_guesses.append(plain_text)
|
|
else:
|
|
for latin, morse in alphabet:
|
|
if morse == morse_text[0:len(morse)]:
|
|
guess_chars(morse_text[len(morse):len(morse_text)], (plain_text + latin))
|
|
|
|
|
|
def guess_vocabs(word, phrase=""):
|
|
if word == "":
|
|
vocab_guesses.append(phrase)
|
|
else:
|
|
for vocab in dictionary:
|
|
if vocab == word[0:len(vocab)]:
|
|
guess_vocabs(word[len(vocab):len(word)], (phrase + vocab + " "))
|
|
|
|
|
|
char_guesses = []
|
|
guess_chars(morse_cipher)
|
|
print("Chars guessed. char_guesses complete.")
|
|
|
|
guess_list_length = len(char_guesses)
|
|
for index, word in enumerate(char_guesses):
|
|
print("(", index, "/", guess_list_length, ") - ", word, "...", end="")
|
|
vocab_guesses = []
|
|
guess_vocabs(word)
|
|
print("\r", end="")
|
|
if vocab_guesses:
|
|
print("Found something: ", vocab_guesses)
|