Files
Mysteryhelfer-web/app/hilfetexte.py

610 lines
46 KiB
Python

# Copyright (c) 2025 Martin Kayser (tebarius)
# Licensed under the MIT License. See LICENSE file in the project root.
cesar_all = ("### Cesar-Verschiebe-Chiffre\n"
"Von der eingegebenen Zeichenkette werden, alle möglichen Verschiebungen gemäß der Cesarchiffre generiert "
"und ausgegeben. Sonderzeichen und Zahlen werden unverändert wiedergegeben.")
buchstabenwortwert = ("### Buchstabenwortwerte ermitteln\n"
"Diese Funktion berechnet den Buchstabenwert der eingegeben Zeichenkette. (A=1 B=2 .... Ä=27 "
"Ö=28 Ü=29 ß=30) Bei mehreren durch Leerzeichen getrennten Wörtern wird auch für jedes einzelne "
"Wort der Wortwert errechnet. \n"
"Desweiteren wird die Quersumme und die iterierte Quersumme des Gesamtbuchstabenwertes als auch "
"für jedes Wort das Buchstabenwertprodukt und das Gesamtbuchstabenwertprodukt ermittelt.")
buchstabenwert_zu_text = ("### Buchstabenwerte zu Text\n"
" Die eingegebenen Buchstabenwerte werden in die entsprechenden Buchstaben umgewandelt."
" (A=1 B=2 .... Ä=27 Ö=28 Ü=29 ß=30) Als Trennungszeichen zwischen den Zahlen sind folgende"
" Zeichen erlaubt: | , _ . - / ; , und Leerzeichen. Bei Verwendung von Leerzeichen sollten"
" möglichst nur 1 Leerzeichen zwischen den Zahlen verwendet werden (überzählige Leerzeichen"
" werden sonst als nicht erkannte Zeichen behandelt).")
zeichenkette_reverse = ("### Zeichenkette rückwärts\n"
"Diese Funktion gibt die eingegebene Zeichenkette von hinten nach vorn gelesen aus.")
zeichenanzahl = ("### Zeichenzählen\n"
"Es wird das Vorkommen jedes einzelnen Zeichens gezählt und ausgegeben. Achtung! Leerzeichen,"
" Tabulatorzeichen und Zeilenumbrüche werden nur vor dem letzten sichtbaren Zeichen gezählt!!!")
quersummen = ("### Quersumme(n)\n"
"Von den eingegebenen Zahlen werden die Quersummen und iterierten Quersummen errechnet und ausgegeben. "
"Als Trennungszeichen zwischen den Zahlen sind folgende Zeichen erlaubt: | , _ . - / ; , und "
"Leerzeichen. Bei Verwendung von Leerzeichen sollten möglichst nur 1 Leerzeichen zwischen den Zahlen "
"verwendet werden (überzählige Leerzeichen werden sonst als nicht erkannte Zeichen behandelt).")
einschluss_count = ("### Einschlüsse zählen\n"
"Es werden die Einschlüsse in Buchstaben und Ziffern gezählt. Neben der Anzahl der Einschlüsse für "
"jeden einzelnen Buchstaben, für jedes Wort und die gesammte Eingabe ermittelt. Da es sich bei der "
"Zahl 4 je nach Schreibweise um eine Zahl mit oder ohne Einschluß handeln kann, werden beide "
"Varianten berücksichtigt. \n"
"!!! Hier ist Klein- und Großschreibung wichtig, denn z.B. b=1 aber B=2 !!!")
morse_to_abc = ("### Morsecode zu Text\n"
"Die Eingabe des Morsecodes hat wie folgt zu erfolgen: - für lang und . für kurz, zwischen den "
"Buchstaben ein Leerzeichen und als Worttrennung ein / wobei davor und danach ein Leerzeichen steht. "
"Für unbekannte Morsecodes erscheint in der Ausgabe ein #.")
abc_to_morse = ("### Text zu Morsecode\n"
"Eingabetext wird als Morsecode ausgegeben. Nicht kodierbare Zeichen erscheinen unverändert "
"in der Ausgabe.")
rot5 = ("### ROT 5\n"
"ROT 5 bezeichnet eine Verschiebechiffrierung, bei welcher die Ziffern 0-9 um je 5 Stellen "
"verschoben werden. Aus 0 wird 5, aus 1 wird 6, aus 7 wird 2,usw. Kodieren und Dekodieren "
"geschieht hier mit ein und derselben Funktion, alle Zeichen die keine Ziffern sind werden "
"unverändert wiedergegeben.")
rot13 = ("### ROT 13\n"
"ROT 13 bezeichnet eine Verschiebechiffrierung, bei welcher die 26 Buchstaben (A-Z) um genau "
"13 Stellen verschoben werden. Da dies genau die Hälfte des Alphabets ist, wird z.B. aus einem "
"A ein N und aus einem N ein A und somit wird über die selbe Funktion sowohl kodiert als auch "
"dekodiert. Die Klein- und Großschreibung bleibt erhalten und alle Zeichen die keine Buchstaben "
"sind werden unverändert wiedergegeben.")
rot18 = ("### ROT 18\n"
"ROT 18 ist eigentlich nix anderes als, daß hier ROT 5 mit ROT 13 kombiniert wird. Die Buchstaben "
"A-Z werden um 13 Stellen verschoben und die Ziffern 0-9 um 5 Stellen. Alle sonstigen Zeichen "
"bleiben unverändert und die Klein- oder Großschreibung bleibt auch erhalten, und auch hier "
"kodiert/dekodiert ein und dieselbe Funktion.")
rot47 = ("### ROT 47\n"
"Bei ROT47 geschieht eigentlich nix anderes als bei ROT5 oder ROT13 nur das hier die druckbaren "
"ASCII-Zeichen mit den Werten 33-126(dezimal) zur Auswahl stehen, also nahezu alle Zeichen die auf "
"eine Standardtastatur aufgedruckt sind. Das Ergebnis ist aber deutlich unlesbarer als z.B. bei "
"ROT13. Alle weiteren Zeichen (z.B. ÄÖÜß) werden unverändert wiedergegeben und auch hier "
"kodiert/dekodiert ein und dieselbe Funktion.")
ascii_to_dez = ("### Text zu Dezimalzahlen\n"
"Der eingegebene Text wird in Dezimalzahlen umgewandelt.")
dez_to_ascii = ("### Dezimalzahlen zu Text\n"
"Die eingegebenen Dezimalzahlen werden in die entsprechenden UNICODE-Zeichen umgewandelt. Als "
"Trennungszeichen zwischen den Zahlen sind folgende Zeichen erlaubt: | , _ . - / ; , und Leerzeichen. "
"Bei Verwendung von Leerzeichen sollten möglichst nur 1 Leerzeichen zwischen den Zahlen verwendet "
"werden (überzählige Leerzeichen werden sonst als nicht erkannte Zeichen behandelt).")
ascii_to_hex = ("### Text zu Hexadezimalzahlen\n"
"Der eingegebene Text wird in Hexadezimalzahlen umgewandelt.")
hex_to_ascii = ("### Hexadezimalzahlen zu Text\n"
"Die eingegebenen Hexadezimalzahlen werden in die entsprechenden UNICODE-Zeichen umgewandelt. "
"Als Trennungszeichen zwischen den Zahlen sind folgende Zeichen erlaubt: | , _ . - / ; , und "
"Leerzeichen. Bei Verwendung von Leerzeichen sollten möglichst nur 1 Leerzeichen zwischen den "
"Zahlen verwendet werden (überzählige Leerzeichen werden sonst als nicht erkannte Zeichen behandelt).")
octal_to_ascii = ("### Octalzahlen zu Text\n"
"Die eingegebenen Octalzahlen werden in die entsprechenden UNICODE-Zeichen umgewandelt. Als "
"Trennungszeichen zwischen den Zahlen sind folgende Zeichen erlaubt: | , _ . - / ; , und Leerzeichen. "
"Bei Verwendung von Leerzeichen sollten möglichst nur 1 Leerzeichen zwischen den Zahlen verwendet "
"werden (überzählige Leerzeichen werden sonst als nicht erkannte Zeichen behandelt).")
ascii_to_octal = ("### Text zu Octalzahlen\n"
"Der eingegebene Text wird in Octalzahlen umgewandelt.")
ascii_to_bin16 = ("### Text zu Binärzahlen (16 bit)\n"
"Der eingegebene Text wird in Binärzahlen mit einer festgelegten Breite von 16bit (16 Zeichen) "
"umgewandelt.")
ascii_to_bin8 = ("### Text zu Binärzahlen (8 bit)\n"
"Der eingegebene Text wird in Binärzahlen mit einer festgelegten Breite von 8bit (8 Zeichen) "
"umgewandelt.")
bin_to_ascii = ("### Binärzahlen zu Text\n"
"Die eingegebenen Binärzahlen werden in die entsprechenden UNICODE-Zeichen umgewandelt. Als "
"Trennungszeichen zwischen den Zahlen sind folgende Zeichen erlaubt: | , _ . - / ; , und "
"Leerzeichen. Bei Verwendung von Leerzeichen sollten möglichst nur 1 Leerzeichen zwischen den Zahlen "
"verwendet werden (überzählige Leerzeichen werden sonst als nicht erkannte Zeichen behandelt).")
zahlwortsuche_de = ("### Zahlwortsuche DE 0-12\n"
"Diese Funktion versucht deutsche Zahlworte zwischen 0 und 12 in einem Text aufzuspüren. Da alle "
"Zeichen ignoriert werden, welche keine Buchstaben sind, werden auch Zahlwörter gefunden welche sich "
"z.B. über zwei Worte verteilen.")
zahlwortsuche_en = ("### Zahlwortsuche EN 0-15\n"
"Diese Funktion versucht englische Zahlworte zwischen 0 und 15 in einem Text aufzuspüren. "
"Da alle Zeichen ignoriert werden, welche keine Buchstaben sind, werden auch Zahlwörter gefunden "
"welche sich z.B. über zwei Worte verteilen.")
kenny_kodieren = ("### Kennyspeak kodieren\n"
"Hilfe sie haben Kenny getötet.. ach nee er kann ja noch seine unverständlichen m p f -Laute von "
"sich geben und hier geht es darum normalen Text in genau diese Laute umzusetzen, wo jedem "
"Buchstaben A-Z eine 3 Zeichen-Kombination zugeordnet ist die sich aus m,p,f zusammensetzt."
"(a=mmm h=mfp x=fpf)")
kenny_dekodieren = ("### Kennyspeak dekodieren\n"
"Wie? Du verstehst Kenny's mpf-Gebrabbel nicht? Na gut da kann ich helfen!! Nicht kennifiziertes "
"wird unverändert ausgegeben.")
kenny_raten = ("### KENNYspeak raten\n"
"Diese Funktion dient zum dekodieren von kennyfizierten Texten, bei denen die 3 Buchstaben mpf "
"vertauscht oder durch andere Zeichen ersetzt wurden. Hierzu werden vor der Dekodierung die 3 "
"häufigsten Zeichen im Text ermittelt und alle anderen Zeichen entfernt bevor die 6 möglichen "
"Lösungen ausgegeben werden. (Falls zum kodieren die Zahlen 0,1 oder 2 verwendet wurden, werden "
"sie durch Buchstaben a,b,c.. ersetzt)")
primzahlalphabet_dekodieren = ("### Primzahlalphabet dekodieren\n"
"Hier können Primzahlen kleiner als 1 Million in Buchstaben umgewandelt werden. Es "
"wird dabei davon ausgegangen, daß den Primzahlen wiederholend die Buchstaben A-Z "
"zugeordnet werden,2=A 3=B 5=C 7=D 11=E ... 97=Y 101=Z 103=A 107=B ... usw.")
primzahlpruefen = ("### Primzahl prüfen\n"
"Für eine eingegebene Zahl wird überprüft, ob es sich um eine Primzahl handelt. Ist die eingegebene "
"Zahl eine Primzahl wird auch informiert, die wievielte Primzahl es ist. Zahlen über 1,299,709 (der "
"100,000. Primzahl) werden abgelehnt.")
nte_primzahl = ("### n.te Primzahl\n"
"Du willst wissen wie z.B. die 1,000. Primzahl lautet, dann bist du hier genau richtig. Die Funktion "
"liefert maximal die 100,000. Primzahl.")
primfaktoren = ("### Primfaktorenzerlegung\n"
"Für die eingegebene Zahl werden die Primfaktoren ermittelt und ausgegeben. Sollte die Zahl einen "
"Primfaktoren haben, welcher größer als 100 Millionen ist, wird die Suche abgebrochen, da die Suche "
"sonst zu lange dauert. Die Funktion lässt sich damit also auch, bei Zahlen kleiner als 200 Millionen, "
"dazu benutzen um festzustellen, ob die eingegebene Zahl eine Primzahl ist.")
dez_to_hex_oct_bin = ("### Dezimal zu HEX, Octal, Binär\n"
"Die eingegebenen dezimalen Ganzzahlen werden in die entsprechenden hexadezimalen, octalen und "
"binären Zahlen umgerechnet. Als Trennungszeichen zwischen den Zahlen sind folgende Zeichen "
"erlaubt: | , _ / ; , und Leerzeichen. Bei Verwendung von Leerzeichen sollten möglichst nur 1 "
"Leerzeichen zwischen den Zahlen verwendet werden (überzählige Leerzeichen werden sonst als "
"nicht erkannte Zeichen behandelt).")
hex_to_dez_oct_bin = ("### Hexadezimal zu Dezimal, Octal, Binär\n"
"Die eingegebenen hexadezimalen Zahlen werden in die entsprechenden dezimalen, octalen und "
"binären Zahlen umgerechnet. Als Trennungszeichen zwischen den Zahlen sind folgende Zeichen "
"erlaubt: | , _ / ; , und Leerzeichen. Bei Verwendung von Leerzeichen sollten möglichst nur "
"1 Leerzeichen zwischen den Zahlen verwendet werden (überzählige Leerzeichen werden sonst als "
"nicht erkannte Zeichen behandelt).")
oct_to_hex_dez_bin = ("### Octal zu HEX, Dezimal, Binär\n"
"Die eingegebenen octalen Zahlen werden in die entsprechenden hexadezimalen, dezimalen und "
"binären Zahlen umgerechnet. Als Trennungszeichen zwischen den Zahlen sind folgende Zeichen "
"erlaubt: | , _ / ; , und Leerzeichen. Bei Verwendung von Leerzeichen sollten möglichst nur "
"1 Leerzeichen zwischen den Zahlen verwendet werden (überzählige Leerzeichen werden sonst als "
"nicht erkannte Zeichen behandelt).")
bin_to_hex_dez_oct = ("### Binär zu HEX, Dezimal, Octal\n"
"Die eingegebenen binären Zahlen werden in die entsprechenden hexadezimalen, dezimalen und "
"octalen Zahlen umgerechnet. Als Trennungszeichen zwischen den Zahlen sind folgende Zeichen "
"erlaubt: | , _ / ; , und Leerzeichen. Bei Verwendung von Leerzeichen sollten möglichst nur "
"1 Leerzeichen zwischen den Zahlen verwendet werden (überzählige Leerzeichen werden sonst als "
"nicht erkannte Zeichen behandelt).")
abc_to_tomtom = ("### Text zu Tomtom\n"
"Beim Tomtom Code werden die einzelnen Buchstaben durch Kombinationen von / und \\ dargestellt. "
"Zwischen den einzelnen Buchstaben steht ein Leerzeichen zwischen Worten zwei Leerzeichen. Kodiert "
"werden, können nur die Buchstaben A-Z.")
tomtom_to_abc = ("### Tomtom zu Text\n"
"Beim Tomtom Code werden die einzelnen Buchstaben durch Kombinationen von / und \\ dargestellt. "
"Zwischen den einzelnen Buchstaben steht ein Leerzeichen zwischen Worten zwei Leerzeichen. Kodiert "
"werden, können nur die Buchstaben A-Z.")
text_to_slashpipe = ("### Text zu Slash and Pipe\n"
"Vergleichbar mit dem Tomtom-Code nur das hier für die Buchstabenkodierung auch | eingesetzt "
"wird. Zwischen den einzelnen Buchstaben steht ein Leerzeichen zwischen Worten zwei Leerzeichen. "
"Kodiert werden, können nur die Buchstaben A-Z.")
slashpipe_to_text = ("### Slash and Pipe zu Text\n"
"Vergleichbar mit dem Tomtom-Code nur das hier für die Buchstabenkodierung auch der | mit "
"eingesetzt wird. Zwischen den einzelnen Buchstaben steht ein Leerzeichen zwischen Worten zwei "
"Leerzeichen. Dekodiert werden, können nur die Buchstaben A-Z.")
periodensystem = ("### Periodensystem: Ordnungszahl<->Symbol\n"
"Eingegebenen Ordnungszahlen 1-118 aus dem Periodensystem der Elemente werden in die ihnen "
"zugehörigen Elementsymbole umgewandelt und anschließend als Text ausgegeben, außerdem erscheint "
"noch eine Ausgabe bei welcher nur die Anfangsbuchstaben der Symbole ausgegeben werden. Werden in "
"der Eingabe Symbole (z.B. N, He) erkannt werde diese zusammen mit ihren Ordnungszahlen ausgegeben. "
"Als Trennungszeichen zwischen den Zahlen und/oder Symbolen sind folgende Zeichen erlaubt: "
"| , _ . - / ; , und Leerzeichen. Bei Verwendung von Leerzeichen sollten möglichst nur 1 Leerzeichen "
"zwischen den Zahlen verwendet werden (überzählige Leerzeichen werden sonst als nicht erkannte "
"Zeichen behandelt).")
naknak_to_text = ("### NakNak to Text\n"
"Nak-Nak / Entensprache / Duck Speak ist eine Spaßsprache, welche vom Owner der Website "
"[https://schnatterente.net]"
"(https://web.archive.org/web/20230807065421/https://www.schnatterente.net/) entwickelt wurde. "
"Diese Funktion übersetzt das Geschnatter in verständliche Buchstaben/Zeichen. !!Bitte unbedingt "
"die Groß- und Kleinschreibung beibehalten!! Wer diesen Quatsch unbedingt umgekehrt übersetzten "
"will, wird wohl etwas suchen müssen, da der Original-Übersetzer, der unter "
"http://uebersetzer.schnatterente.net erreichbar war, nicht mehr online ist und ich ganz bestimmt "
"keinen hier integrieren werde.")
navajo_to_text = ("### Navajo-ABC to Text\n"
"Die Sprache der Navajo-Indianer wurde im zweiten Weltkrieg für den verschlüßelten Funkverkehr "
"eingesetzt. Vorteile waren, daß nahezu niemand außer Navajo-Volk die Sprache verstand und es keine "
"schriftlichen Aufzeichnungen über die Sprache gab. Das Alphabet und die Codewörter wurden dabei von "
"den Codesprechern (natürlich Navajo's) auswendig gelernt. Die Dekodierfunktion hier übersetzt das "
"Codealphabet (A-Z), bei welchem es auch so ist, daß unterschiedliche Worte für den selben "
"Buchstaben stehen, in normalen Text. Leider existieren leicht unterschiedliche Alphabete was die "
"Wörter bzw. deren Schreibweise angeht im Netz, mit welchen codiert wird, weshalb ich hier nur die "
"Dekodierung anbiete. weitere Codewörter und Erklärungen gibt es z.B. hier: "
"https://ww2db.com/other.php?other_id=29 oder hier: "
"http://math.ucsd.edu/~crypto/Projects/RobertoSandoval/NavajoWindtalkers.pdf")
pi_suche = ("### PI Nachkommastellensuche\n"
"Für die eingegebene Zahl/Zahlenreihe X wird versucht die entsprechende X. Nachkommastelle auszugeben "
"und das erst Vorkommen der Zahlenreihe X innerhalb der Nachkommastellen von PI "
"(3.141592653589793238462643...) zu ermitteln. Aus Performance- und Speicherplatzgründen ist die Suche "
"auf die ersten 10 Millionen Nachkommastellen beschränkt.")
euler_suche = ("### Eulersche Zahl - Nachkommastellensuche\n"
"Für die eingegebene Zahl/Zahlenreihe X wird versucht die entsprechende X. Nachkommastelle auszugeben "
"und das erst Vorkommen der Zahlenreihe X innerhalb der Nachkommastellen von e "
"(2.71828182845904523.....) zu ermitteln. Aus Performance- und Speicherplatzgründen "
"ist die Suche auf die ersten 10 Millionen Nachkommastellen beschränkt.")
goldener_schnitt_suche = ("### phi(Goldener Schnitt) Nachkommastellensuche\n"
"Für die eingegebene Zahl/Zahlenreihe X wird versucht die entsprechende X. Nachkommastelle "
"auszugeben und das erst Vorkommen der Zahlenreihe X innerhalb der Nachkommastellen von "
"phi (1.618033988749894848204586...) zu ermitteln. Aus Performance- und Speicherplatzgründen "
"ist die Suche auf die ersten 10 Millionen Nachkommastellen beschränkt.")
anagramm_suche_de = ("### Anagrammsuche mit Wörterbuch DE\n"
"Diese Funktion benutzt eine deutsche Wörterbuchdatei vom Project "
"https://sourceforge.net/projects/germandict um zu überprüfen ob sich unter Verwendung __aller__ "
"eingegebenen Buchstaben Wörter bilden lassen, welche im Wörterbuch vorkommen.")
anagramm_suche_en = ("### Anagrammsuche mit Wörterbuch EN\n"
"Diese Funktion benutzt die englische Wörterliste en_US-large.txt vom Project "
"https://sourceforge.net/projects/wordlist um zu überprüfen ob sich unter Verwendung aller "
"eingegebenen Buchstaben Wörter bilden lassen, welche im Wörterbuch vorkommen. Dieses Wörterbuch "
"kennt übrigens auch viele Wörter mit Apostroph wie z.B. say's.")
wortsuche_de = ("### Wortsuche mit Wörterbuch DE\n"
"Wer kennt es nicht? Man sucht ein Wort mit einer bestimmten Anzahl an Buchstaben und weiß aber z.B. "
"nur den Anfangsbuchstaben und die letzten 3 Buchstaben. Hierbei soll diese Funktion helfen. "
"Unbekannte Buchstaben werden dabei einfach durch * ersetzt. Klein-/Großschreibung in der Eingabe "
"wird dabei ignoriert. \n"
"Beispiel: \n"
"Ge*ca**i** -> Geocaching \n"
"ge*ca**i** -> Geocaching \n"
"T*****dose -> Tupperdose, Tabaksdose \n"
"Diese Funktion nutzt dafür die deutsche Wörterbuchdatei vom Project "
"https://sourceforge.net/projects/germandict")
wortsuche_en = ("### Wortsuche mit Wörterbuch EN\n"
"Wer kennt es nicht? Man sucht ein Wort mit einer bestimmten Anzahl an Buchstaben und weiß aber z.B. "
"nur den Anfangsbuchstaben und die letzten 3 Buchstaben. Hierbei soll diese Funktion helfen. "
"Unbekannte Buchstaben werden dabei einfach durch * ersetzt. Klein-/Großschreibung in der Eingabe "
"wird dabei ignoriert. \n"
"Beispiel: \n"
"Ge*ca**i** -> geocaching \n"
"ge*ca**i** -> geocaching \n"
"say*s -> say's (Die Wortliste kennt viele Wörter mit Apostroph) \n"
"coordinat** -> coordinator, coordinates, coordinated \n"
"Diese Funktion nutz dafür die englische Wörterliste en_US-large.txt vom Project "
"https://sourceforge.net/projects/wordlist")
remorse_de = ("### RE-Morse DE\n"
"Es gibt ja so Leute, die finden es lustig einen Morsecode so aufzuschreiben, daß zwar Wort für Wort "
"getrennt wird, aber ansonsten einfach mal die Leerzeichen weggelassen werden. Bei genau solchen "
"fiesen Gemeinheiten hilft diese Funktion. Für diese Funktion wurde basierend auf der deutschen "
"Wörterbuchdatei vom Project https://sourceforge.net/projects/germandict eine "
"spezielle Wörterbuchdatei generiert, um eine beschleunigte Abfrage zu ermöglichen.")
remorse_en = ("### RE-Morse EN\n"
"Es gibt ja so Leute, die finden es lustig einen Morsecode so aufzuschreiben, daß zwar Wort für Wort "
"getrennt wird, aber ansonsten einfach mal die Leerzeichen weggelassen werden. Bei genau solchen "
"fiesen Gemeinheiten hilft diese Funktion. Mit Hilfe der englischen Wörterliste en_US-large.txt vom "
"Project https://sourceforge.net/projects/wordlist wird überprüft, für welches Wort der eingegebene "
"Morsecode stehen könnte.")
t9_de = ("### T9-DE\n"
"Diese Funktion benutzt die deutsche Wörterbuchdatei german.dic vom Project "
"https://sourceforge.net/projects/germandict ermittelt diese Funktion alle im Wörterbuch "
"enthaltenen Wörter die zu der eingegebenen T9-kodierten Ziffernfolge passen und gibt "
"diese aus. \n"
"Bsp. 56673462836 liefert das Wort Koordinaten \n"
"Für diese Funktion wurde basierend auf der deutschen Wörterbuchdatei vom Project "
"https://sourceforge.net/projects/germandict eine spezielle Wörterbuchdatei generiert, um eine beschleunigte "
"Abfrage zu ermöglichen.")
t9_en = ("### T9-EN\n"
"Mit Hilfe der englischen Wörterliste en_US-large.txt vom Project "
"https://sourceforge.net/projects/wordlist ermittelt diese Funktion alle im Wörterbuch "
"enthaltenen Wörter die zu der eingegebenen T9-kodierten Ziffernfolge passen und gibt diese aus. \n"
"Bsp. 26673462837 liefert das Wort coordinates")
vigenere = ("### Vigenere-Chiffre\n"
"Die Eingabe eines Schlüsselwortes ist hier erforderlich!!! Die Vigenere-Chiffre baut auf dem Prinzip "
"der Cesar-Chiffre auf, wobei hier die Verschiebung jedes einzelnen Buchstaben durch die "
"Buchstabenwerte eines Schlüsselwortes definiert werden. Da der zu verschlüsselnde Text im "
"allgemeinen länger als das Schlüsselwort ist, wird das Schlüsselwort immer wieder wiederholt. "
"Ist der Schlüssel mindestens genauso lang wie der Klartext entspricht dies dann dem "
"One-Time-Pad-Chiffre. Der eingegebene Text wird hier mit dem eingegebenen Schlüsselwort kodiert und "
"dekodiert ausgegeben und zwar sowohl in der Variante, daß Sonderzeichen Schlüsselbuchstaben "
"verbrauchen als auch nicht.")
wolseley = ("### Wolseley-Chiffre\n"
"Die Eingabe eines Schlüsselwortes ist hier erforderlich!!! Die Woseley-Chiffre arbeitet mit einem "
"Schlüsselwort über welches dann ein Codealphabet/Codequadrat gebildet wird mit welchem dann sowohl "
"kodiert als auch dekodiert wird. Angefangen wird dabei mit dem jeweils ersten Vorkommen eines "
"Buchstaben im Schlüsselwort und danach folgen die restlichen Buchstaben des Alphabets die nicht im "
"Schlüsselwort vorkommen. Da hier nur 25 Zeichen zur Verfügung stehen wird das J mit dem I "
"zusammengefasst und als I behandelt und dargestellt. Sonstige Zeichen die nicht im Codealphabet "
"vorhanden sind werden unverändert ausgegeben. \n \n"
"Codealpahbet mit Schlüsselwort: Teebaum \n"
"| | | | | | | | | | | | | | | | | | | | | | | | | |\n"
"|-|-|-|-|-|-|-|-|-|-|-|---|-|---|-|-|-|-|-|-|-|-|-|-|-|\n"
"|T|E|B|A|U|M|C|D|F|G|H|I/J|K|L |N|O|P|Q|R|S|V|W|X|Y|Z|\n"
"|Z|Y|X|W|V|S|R|Q|P|O|N|L |K|I/J|H|G|F|D|C|M|U|A|B|E|T|\n \n"
"Bei der Chiffrierung/Dechiffrierung wird im Text nun der erste Buchstabe mit dem letzten getauscht, "
"der 2. mit dem Vorletzten, usw. also aus T wird Z und umgekehrt,E<->Y, B<->X, A<->W usw.. nur ein "
"K bleibt ein K")
atbash = ("### Atbash-Chiffre\n"
"Atbash ist eine einfache Ersetzungschiffre die für das hebräische Alphabet entwickelt wurde, welche "
"später auf das lateinische Alphabet übertragen wurde. Dabei wird dem normalen Alphabet ein "
"rückwärts gelesenes Alphabet gegenüber gestellt. A wird zu Z, B zu Y usw. Kodierung und Dekodierung "
"erfolgt über die selbe Funktion. \n \n"
"Codealpahbet: \n"
"| | | | | | | | | | | | | | | | | | | | | | | | | | |\n"
"|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|\n"
"|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|\n"
"|Z|Y|X|W|V|U|T|S|R|Q|P|O|N|M|L|K|J|I|H|G|F|E|D|C|B|A|")
monoalphasubstitution = ("### Monoalphabetische Substitutions-Chiffre\n"
"Bei der monoalphabetischen Substitution wird jedem Buchstaben des Alphabets der Buchstabe "
"eines Schlüsselalphabets zugeordnet: \n"
"|Bsp.| |\n"
"|----|-|\n"
"|Klartextalphabet|ABCDEFGHIJKLMNOPQRSTUVWXYZ|\n"
"|Schlüsselalphabet|DSBJFALKNVPOQXYWCEGHIMRTUZ|\n \n"
"Spezialformen dieser Chiffre sind Atbash, Cesar, Rot13. Die Funktion hier arbeitet so, dass "
"entweder ein komplettes Schlüsselalphabet oder ein Schlüsselwort verwendet werden kann. Bei "
"Verwendung eines Schlüsselwortes, wird der Rest des Schlüsselalphabets automatisch "
"aufgefüllt. \n"
"Aus dem Schlüsselwort GutenMorgenLiebeSonne wird z. B. dann das Schlüsselalphabet: "
"GUTENMORLIBSACDFHJKPQVWXYZ \n"
"| | |\n"
"|-|-|\n"
"|Schlüsselwort|GutenMorgenLiebeSonne|\n"
"|Schlüsselalphabet|GUTENMORLIBSACDFHJKPQVWXYZ|")
autokey = ("### Autokey-Chiffre\n"
"Die Autokey-Chiffre arbeitet nach dem selben Prinzip wie Vignere-Chiffre mit dem Unterschied, dass "
"hier am Ende des Schlüsselwortes nicht wieder und wieder das Schlüsselwort angehängt wird, sondern "
"der Klartext an das Schlüsselwort angehangen wird. Der eingegebene Text wird hier mit dem "
"eingegebenen Schlüsselwort kodiert und dekodiert ausgegeben.")
polybios = ('Die 5x5 Polybios-Chiffre kodiert Buchstaben zu zweistelligen Zahlen dazu wird das Schlüsselalphabet '
'in ein 5x5-Quadrat eingetragen. Die Buchstaben werden dann sozusagen zu ihren entsprechenden '
'"Koordinaten" kodiert. Im unten gezeigten Quadrat wird so aus A 11, aus B 12, aus Q 41, usw. Da in '
'ein 5x5 Quadrat nur 25 Buchstaben passen wird typischer Weise J und I zusammengefasst, (alternativ '
'auch U und V), sollen auch Ziffern kodiert werden wird mit einem 6x6-Quadrat gearbeitet, bei '
'welchem dann für das komplette Alphabet und die Ziffern 0-9 Platz ist. \n'
'| |1|2|3|4|5|\n'
'|-|-|-|-|-|-|\n'
'|1|A|B|C|D|E|\n'
'|2|F|G|H|I|K|\n'
'|3|L|M|N|O|P|\n'
'|4|Q|R|S|T|U|\n'
'|5|V|W|X|Y|Z|\n\n'
'Kommt für die Chiffre ein Schlüsselwort zum Einsatz wird das Code-Quadrat so abgeändert das die '
'Buchstaben des Schlüsselwortes entsprechend ihres ersten Vorkommens Zeile für Zeile in das '
'Codequadrat eingetragen werden, der Rest wird mit den verbliebenen Buchstaben aufgefüllt. Zur '
'Information wird für jede Polybios-Variante auch noch einmal der verwendete Klartext und das '
'verwendete Passwort ausgegeben.')
polybios_encode = f"### Polybios-Chiffre kodieren\n{polybios}"
polybios_decode = f"### Polybios-Chiffre dekodieren\n{polybios}"""
klopfcode = ('Der Klopfcode ist im Prinzip eine Polybios Chiffre mit einem festen '
'Schlüsselquadrat bei welchem nicht I und J sondern C und K zusammengefasst werden. \n'
'siehe hier: \n'
'| |1|2|3|4|5|\n'
'|-|-|-|-|-|-|\n'
'|1|A|B|C|D|E|\n'
'|2|F|G|H|I|J|\n'
'|3|L|M|N|O|P|\n'
'|4|Q|R|S|T|U|\n'
'|5|V|W|X|Y|Z|')
klopfcode_encode = f"### Klopfcode kodieren\n{klopfcode}"
klopfcode_decode = f"### Klopfcode dekodieren\n{klopfcode}"
maptiles_kachelkoordinaten = ('### Maptiles / Kachelkoordinaten\n'
'Bei vielen Online-Kartendiensten wie Openstreetmap oder Google-Maps erfolgt die '
'Kartendarstellung über vorberechnete "Kachel"-Grafikdateien, welche ein '
'Adressierungssystem benötigen damit je nach Koordinate und Zoomstufe auch der richtige '
'Kartenausschnitt dargestellt wird und klar ist welche Kacheln daneben darzustellen '
'sind. \n'
'Solche Kacheln sind typischer Weise PNG-Grafiken mit 256x256 oder 512x512 Pixeln und je '
'nach Zoomstufe ist eine unterschiedliche Anzahl solcher Kacheln/Tiles notwendig um die '
'ganze Welt abzubilden. Da je Zoomstufe sich die Anzahl der benötigten Kacheln '
'vervierfacht und damit auch die Datenmenge werden in der Praxis keine Zoomlevel über '
'20 verwendet. \n'
'Um die einzelnen Kacheln beim tilemap-Server abzufragen braucht man die Zoomstufe, '
'einen X- und einen Y-Wert wobei dies alles ganzzahlige Werte sind. Abgerufen vom '
'Tilemap-Server werden die Kacheln dann nach dem Muster: '
'`http://servername/Zoom/X/Y.png` Den Fernsehturm mit Zoomstufe 18 findet man z.B. bei '
'Openstreetmap hier: https://tile.openstreetmap.org/18/140836/85970.png \n'
'Die Funktion arbeitet hier auf die Art und Weise, dass man 2 durch ein Freizeichen '
'getrennte Zahlen eingibt. Handelt es sich bei den angegebenen Zahlen um "Kommazahlen" '
'welche allerdings mit Punkt anzugeben sind (Bsp: 52.520803 13.4088653 ) geht die '
'Funktion davon aus, daß es sich um Koordinaten in Dezimalgrad handelt und sofern es '
'gültige Koordinaten sind erfolgt eine Ausgabe der X und Y Werte für die Zoomstufen und '
'1-25. (Positive Zahlen stehen für Nord und Ost, negative für Süd und West) Handelt es '
'sich bei den beiden Zahlen um Ganzzahlen wird davon ausgegangen, dass es sich um X und '
'Y Werte handelt und es werden für alle Zoomstufen von 1-25 Koordinaten in '
'Dezimalminuten und Dezimalgrad ausgegeben, sofern dies sinnvolle Koordinaten ergibt '
'und sie werden auf einer Karte angezeigt.')
quadtree_koordinaten = ("### Quadtree-/Quadkeykoordinaten\n"
"Diese Koordinatenkodierung spielt in der alltäglichen Praxis eigentlich kaum noch ein Rolle, "
"außer scheinbar bei bing-maps und beim Geocaching. Sie dient ähnlich wie das Maptiles-System "
"dazu Grafikdateien für unterschiedliche Zoomstufen einer Karte zu adressieren. Die Länge der "
"Zahl entspricht hier zugleich auch dem Detailgrad bzw. der Zoomstufe. Es finden nur die "
"Zahlen 0,1,2 und 3 Verwendung, wobei die 0 den Nordwestlichen Quadranten, 1 den "
"Nordöstlichen, 2 SW und 3 SO. \nEin kleines Beispiel: 230 würde bedeuten es geht im "
"südwestlichen Quadranten (2) um den südöstlichen Quadranten(3) und in diesem wiederum um den "
"nordwestlichen Quadranten. Je länger also diese Zahlenreihe aus 0,1,2 und 3 wird um so "
"genauer wird ein bestimmter Ort angegeben. \nWeitere Infos gibt es unter folgendem Link zu "
"finden: https://docs.microsoft.com/en-us/bingmaps/articles/bing-maps-tile-system \n"
"Die Funktion ermittelt aus einer Quadtreekoordinate die Maptileskoordinaten und die "
"WGS84-Koordinaten und zeigt diese auf einer Karte an.")
chronogramm = ('### Chronogramm/ römische Ziffern zählen\n'
'Ein Chronogramm (oder Eteostichon) ist ein Satzteil, ein Satz, ein Sinnspruch oder eine Inschrift, '
'meist ein Vers in lateinischer Sprache, in dem diejenigen Buchstaben, die auch als römische '
'Zahlzeichen gelesen werden können (I, V, X, L, C, D, M), in ihrer Summe die Jahreszahl des '
'Ereignisses angeben, auf das sich der Text bezieht. Entscheidend ist allein die Summe der '
'Zahlenwertbuchstaben, die sonst bei römischen Zahlen übliche Subtraktion kleinerer Zahlenwerte von '
'folgenden größeren erfolgt nicht. Die Zahlbuchstaben sind meist hervorgehoben, etwa durch '
'Großschreibung oder Verdickung der Buchstaben bzw. durch farbliche Abhebung mittels Rötung oder '
'Vergoldung. \n'
'Eine Besonderheit bilden Krypto(chrono)gramme, bei denen die Zahlbuchstaben nicht gekennzeichnet '
'sind und "verborgen" bleiben. Bei der einfachen Analyse werden hier die Buchstaben I(1), V(5), '
'X(10), L(50), C(100), D(500), M(1000) berücksichtigt und addiert, bei der erweiterten Analyse wird '
'zunächst einmal berücksichtigt, daß im Lateinischen Alphabet der Buchstabe J als I und der '
'Buchstabe U als V geschrieben wird. Außerdem erfolgt wird in der extremen Variante auch noch '
'W=10(V+V) und Y=2(I+I) berücksichtigt. \n'
'Des Weiteren wird auch für jeden relevanten Buchstaben einzeln noch einmal die Anzahl und Summe'
' angezeigt. Eine Unterscheidung zwischen Klein- und Großschreibung findet nicht statt.')
zahlen_roemisch_arabisch_umwandeln = ("### Römische in Arabische Zahlen umwandeln und umgekehrt\n"
"Es werden römische Zahlen in arabische umgewandelt und umgekehrt, die Funktion "
"arbeitet dabei bei der Umwandlung von arabisch zu römisch mit Werten bis "
"maximal 500000. Es werden folgende Zeichen verwendet: I=1, V=5, X=10, L=50, "
"C=100, D=500, M=1000, \u2181=5000, \u2182=10000, \u2187=50000, \u2188=100000 \n"
"Etwas Vorsicht sollte bei einer Umwandlung von römischen in arabische Zahlen "
"geboten sein, wenn mit untypischen Schreibweisen gearbeitet wird bei welchen "
"mehr als ein Zeichen von dem nachfolgenden Zeichen abgezogen werden soll. Die "
"eigentlich inkorrekte Schreibweise IIX für die Zahl 8 wird hier die Zahl 10 als "
"Ergebnis haben (+1-1+10), dafür wird aber allerdings die ebenfalls falsche "
"Schreibweise IM genauso als 999 wie die korrekte Schreibweise CMXCIX erkannt.")
url_decode = ("### URL-decode\n"
"Nachdem Groundspeak nun inzwischen sämtliche Bilddateien über einen Proxy umleitet bevor sie im "
"Listing erscheinen wird es manchmal schwer die ursprüngliche URL und/oder den Dateinamen des "
"Bildes noch lesen zu können. Die URL hat dort nun jeweils folgendes Muster: "
"`https://imgproxy.geocaching.com/......?url=.....` wobei nach dem `?url=` dann die ursprüngliche "
"Bild-URL folgt, allerdings wird dabei dann aus `http://` folgendes `http%3A%2F%2F` und um genau "
"dieses wieder normal lesbar zu machen dient diese Funktion")
reversewig = ('### Reverse Wherigo zu Koordinaten\n'
'Mit dem Reverse Wherigo hat -Waldmeister- eigentlich eine coole Sache erfunden. Man hat anfangs '
'keine Koordinaten sondern nur 3 Zahlen, welche man nach Start des Wherigo-Cartridges eingibt und '
'dann erfährt man wie weit der Cache entfernt ist. Nun kann man immer wieder von unterschiedlichen '
'Positionen aus diese Entfernungsfragen durchführen und sich damit dem Cache nähern. Je weniger '
'Abfragen man braucht umso besser. Leider gibt es inzwischen genügend Tools die genau wie diese '
'Funktion hier aus den 3 Zahlen direkt die Finalkoordinaten ermitteln können. \n'
' Leider??? Ja leider denn das führt auch dazu, das es inzwischen so extrem viele dieser '
'Reverse-Wherigos gibt wo sich die Owner anscheinend auch denken "Die spielt doch sowieso keiner '
'mehr normal..." anders kann ich mir ganze Trails mit Reverse-Wherigos nicht erklären. Um die '
'Funktion zu nutzen braucht man nur die 3 Zahlen getrennt durch ein entsprechendes Trennzeichen: '
'| , _ / ; , oder Leerzeichen eingeben und auf den Knopp klicken und bekommt Koordinaten und eine '
'ungefähre Vorschau auf einer Karte.')
base64_ascii = ('### Base64 <-> ASCII\n'
'Base64 ist ein Kodierungsverfahren, welches dazu verwendet wird um beliebige Binärdaten nur Hilfe '
'einer Zeichenkette aus A-Z, a-z, 0-9, +, / sowie am Ende = übertragen zu können. Ein Einsatzzweck '
'dafür ist z.B. wenn bei EMails Dateianhänge verwendet werden, dort werden nahezu alle Dateiformate '
'base64-kodiert übertragen. Auch bei dem einem oder anderen Mystery sind mir solche kodierten '
'Zeichenketten schon begegnet. Wenn am Ende einer Zeichenkette ein oder zwei "="-Zeichen stehen ist '
'die Wahrscheinlichkeit recht groß, das hier base64 verwendet wurde. Das "="-Zeichen dient hier '
'nämlich als "Lückenfüller" am Ende. Die Funktion hier versucht zunächst eine Dekodierung '
'Base64->ASCII gelingt dies nicht, erscheint ein Hinweis und der eingegeben Text wird dann '
'Base64-kodiert ausgegeben.')
jaegerzaun = ("Jägerzaun (auch Railfence oder ZigZag-Chiffre genannt) Bei dieser Chiffre wird kodiert, indem man "
"einen Text im Zickzackmuster in ein Feld aus z.B. 3 Zeilen und so vielen Spalten wie der Text lang "
"ist schreibt. Man beginnt in Spalte 1 - Zeile 1, dann geht es in Spalte 2 - Zeile 1 weiter danach "
"Spalte 3 - Zeile 3, dann Spalte 4 - Zeile 2, Spalte 5 - Zeile 1 usw. Danach werden die Buchstaben "
"einfach Zeile für Zeile hintereinander geschrieben. Unterschiedliche Varianten entstehen einfach "
"dadurch, dass man mit unterschiedlich vielen Zeilen arbeitet welche im Schlüsselfeld anzugeben "
"ist. \n"
"Die Funktion erzeugt hierbei einmal eine Ausgabe bei welcher auch Leerzeichen mitgeschrieben werden "
"und eine Ausgabe wo zuvor die Leerzeichen entfernt werden.")
jaegerzaun_encrypt = f"### encrypt Jägerzaun\n{jaegerzaun}"
jaegerzaun_decrypt = (f"### decrypt Jägerzaun\n{jaegerzaun} \n"
f"Wird im Schlüsselfeld keine Zahl angegeben erfolgt automatisch die Dekodierung für alle "
f"Zeilenanzahlen von 2-12.")
adfgx = ('Die ADFGX-Chiffre arbeitet mit zwei Passwörtern, wobei jedes für je einen Kodierungsschritt '
'verwendet wird. Das erste wird benutzt um eine Variation der Polybios-Kodierung mit einem 5x5 '
'Quadrat und J=I durchzuführen bei welcher die Zahlen 1-5 durch die Buchstaben ADFGX ersetzt '
'werden. \n'
'Mit dem Text "Ein Beispiel",dem Passwort "PASSWORT" und einem mit A->Z aufgefülltem Schlüsselquadrat: \n'
'| |A|D|F|G|X|\n'
'|-|-|-|-|-|-|\n'
'|A|P|A|S|W|O|\n'
'|D|R|T|B|C|D|\n'
'|F|E|F|G|H|I|\n'
'|G|K|L|M|N|Q|\n'
'|X|U|V|X|Y|Z| \n \n'
'... ergibt der erste Schritt z.B. die Zeichenfolge: "FA FX GG DF FA FX AF AA FX FA GD". '
'Nun kommt das zweite Passwort zum Einsatz als Beispiel hier:"Tester". Zunächst einmal wird die '
'alphabetische Reihenfolge des Passworts "Tester" benötigt -> 5 1 4 6 2 3 \n'
'diese Zahlenreihe wird nun in die erste Zeile geschrieben und das Ergebnis aus Schritt 1 zeilenweise '
'darunter: \n'
'|5|1|4|6|2|3|\n'
'|-|-|-|-|-|-|\n'
'|F|A|F|X|G|G|\n'
'|D|F|F|A|F|X|\n'
'|A|F|A|A|F|X|\n'
'|F|A|G|D| | | \n \n'
'... nun eine Sortierung der Spalten... \n'
'|1|2|3|4|5|6|\n'
'|-|-|-|-|-|-|\n'
'|A|G|G|F|F|X|\n'
'|F|F|X|F|D|A|\n'
'|F|F|X|A|A|A|\n'
'|A| | |G|F|D| \n \n'
'... dies nun spaltenweise von oben nach unten ausgelesen und hintereinander geschrieben ergibt nun'
'den kodierten Text. Typischer Weise erfolgt für eine bessere Lesbarkeit eine Gruppierung in '
'5er-Blöcken: "AFFAG FFGXX FFAGF DAFXA AD" \n'
' \n'
'Ausgegeben werden zwei Varianten, welche sich nur dadurch unterscheiden wie das Schlüsselquadrat im '
'ersten Schritt aufgefüllt wird. Entweder in alphabetischer Reihenfolge A->Z oder umgekehrt Z->A.')
adfgx_kodieren = f"### HILFE: ADFGX kodieren\n{adfgx}"
adfgx_dekodieren = f"### HILFE: ADFGX dekodieren\n{adfgx}"
adfgvx = (f'Die ADFGVX-Chiffre erweitert das 5x5-Schlüsselquadrat der ADFGX-Chiffre ersten Kodierungsschritt auf 6x6 '
f'so, dass das komplette Alphabet und die Zahlen 0-9 verwendet werden können. \n'
f'Alles andere funktioniert wie bei ... \n \n__ADFGX:__ \n{adfgx}')
adfgvx_kodieren = f"### HILFE: ADFGVX kodieren\n{adfgvx}"
adfgvx_dekodieren = f"### HILFE: ADFGVX dekodieren\n{adfgvx}"
brainfuck_interpreter = ("### Brainfuck-Interpreter\n"
"Brainfuck gehört zu den sogenannten esoterischen Programmiersprachen. \n"
"Der Programmcode setzt sich hier aus den 8 Zeichen ><+-.,[]') zusammen. Diese Funktion "
"führt einen derartigen Programmcode aus, und gibt das Ergebnis aus, welches bei Geocaches "
"meist eine kurze Nachricht oder die Koordinaten sind. Für eine umgekehrte Umwandlung von "
"Text in Brainfuckcode gibt es im Internet genügend Möglichkeiten zu finden. \n"
"Folgender Code wäre z.B. _Hello World!_ in Brainfuck: \n"
"`++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++."
"------.--------.>+.>.`")
ook_interpreter = ("### Ook-Interpreter\n"
"Ook ist eine Abwandlung von Brainfuck wobei die 8 Zeichen von Brainfuck hier durch eine "
"Kombination von je zwei der folgenden 3 Satzzeichen .!? ersetzt werden. Dabei wird dann je das "
"Wort Ook vor die Satzzeichen geschrieben. z.B.: Ook! Ook? Ook. Ook! Da Ook auch durch andere "
"Wörter ersetzt oder auch ganz ohne Wörter (ShortOok) auftaucht ignoriert diese Funktion alle "
"anderen Zeichen außer .!? bevor versucht wird den Code auszuführen.")
rlou_to_graph = ("### RLOU/RLUD -> Graph\n"
"Im Grunde genommen ist das hier eigentlich keine Kodierung sondern stellt einfach ein Malanleitung "
"dar. Wobei in der deutschen Version halt R=rechts, L=links, O=oben und U= unten bzw. in der "
"englischen Variante halt L=left, R=right, U=up, D=down ist. \n"
"Die Funktion hier versucht das ganz halt zu malen und als Grafik auszugeben, wobei versucht wird "
"automatisch zu erkennen ob die deutsche oder englische Variante zum Einsatz kommt. \n"
"Zum ausprobieren könnt ihr ja mal `ddurduu ddurduulr ddr rluu ddruul` probieren.")