In: Morse-Chiffre Out: Gültige Buchstabenkombinationen ("words"), Wortkombinationen aus natürlichen Sprachen ("phrases")
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

28 lines
1.2 KiB

class MorseDecrypt:
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", "--.."]
]
def latin_to_morse(self, word: str):
result = ""
for letter in word:
for latin, morse in self.alphabet:
if letter == latin:
result += morse
return result
def guess_morse_text(self, morse_text):
return self.guess_chars(morse_text, '', [])
def guess_chars(self, morse_text: str, plain_text="", char_guesses=None):
if morse_text == "":
char_guesses.append(plain_text)
else:
for latin, morse in self.alphabet:
if morse == morse_text[0:len(morse)]:
self.guess_chars(morse_text[len(morse):len(morse_text)], (plain_text + latin), char_guesses)
return char_guesses