Code: Alles auswählen
try:
import tkinter as tk
except ImportError:
import Tkinter as tk
import itertools
IGNORIER_ZEICHEN = ["a", "e", "i", "o", "u", "h", "y"]
CODE = {
"t" : "1",
"d" : "1",
"n" : "2",
"m" : "3",
"r" : "4",
"l" : "5",
"j": "6",
"k" : "7",
"f" : "8",
"v" : "8",
"w": "8",
"b" : "9",
"p" : "9",
"s" : "6",
"z" : "0",
"ß" : "0",
"q" : "7"
}
KOMBIS = {"th": "t", "sch": "j", "ch":"j", "ck": "k", "ph": "f"}
class App(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.eingabe = tk.Entry(self)
self.button = tk.Button(
self, text="codieren", command=self.major_kodieren
)
self.label = tk.Label(self)
self.eingabe.pack()
self.button.pack()
self.label.pack()
def major_kodieren(self):
""" Uebersetze das eingegeben Wort in das Major System """
wort = self.parse(self.eingabe.get())
codierung = ""
for zeichen in wort:
if zeichen not in IGNORIER_ZEICHEN:
codierung += CODE[zeichen]
self.label.config(text=codierung)
def parse(self, wort):
""" Macht ein Wort bereit fuer die Kodierung
- entferne doppelte Buchstaben
- mache das Wort lowercase
- ersetze Buchstabenkombis durch einen Buchstaben, der
dem richtigen Laut entspricht
"""
wort = (''.join(ch for ch, _ in itertools.groupby(wort))).lower()
for kombi in KOMBIS.keys():
wort = wort.replace(kombi, KOMBIS[kombi])
return wort
def main():
app = App()
app.mainloop()
if __name__ == '__main__':
main()