brainfuck ook
This commit is contained in:
@@ -272,7 +272,12 @@ def auswahl_verarbeiten():
|
||||
elif "ADFGVX dekodieren" in auswahl:
|
||||
st.session_state.output_text = tools.adfgvx_dekodieren(text, additional_parameter)
|
||||
st.session_state.map_data = None
|
||||
|
||||
elif "Brainfuck-Interpreter" in auswahl:
|
||||
st.session_state.output_text = tools.brainfuck_interpreter(text)
|
||||
st.session_state.map_data = None
|
||||
elif "Ook-Interpreter" in auswahl:
|
||||
st.session_state.output_text = tools.ook_interpreter(text)
|
||||
st.session_state.map_data = None
|
||||
|
||||
# Standardwerte im Session State initialisieren
|
||||
if 'option' not in st.session_state:
|
||||
@@ -370,6 +375,8 @@ option = st.sidebar.radio("hidden_label",
|
||||
":green[ADFGX dekodieren]",
|
||||
":green[ADFGVX kodieren]",
|
||||
":green[ADFGVX dekodieren]",
|
||||
":green-badge[Brainfuck-Interpreter]",
|
||||
":green-badge[Ook-Interpreter]",
|
||||
),
|
||||
key='option',
|
||||
on_change=auswahl_verarbeiten,
|
||||
|
||||
@@ -279,7 +279,7 @@ wortsuche_de = ("### Wortsuche mit Wörterbuch DE\n"
|
||||
"Beispiel: \n"
|
||||
"Ge*ca**i** -> Geocaching \n"
|
||||
"ge*ca**i** -> Geocaching \n"
|
||||
"T*****dose -> Tupperdose, Tabaksdose"
|
||||
"T*****dose -> Tupperdose, Tabaksdose \n"
|
||||
"Diese Funktion nutzt dafür die deutsche Wörterbuchdatei vom Project "
|
||||
"https://sourceforge.net/projects/germandict")
|
||||
|
||||
@@ -584,9 +584,25 @@ adfgx = ('Die ADFGX-Chiffre arbeitet mit zwei Passwörtern, wobei jedes für je
|
||||
'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.")
|
||||
|
||||
40
app/tools.py
40
app/tools.py
@@ -2614,26 +2614,10 @@ def adfgvx_dekodieren(eingabetext, pw):
|
||||
ausgabetext += f":blue[dekodiert mit Variante 9-0,Z-A:] \n{klartext_90za}"
|
||||
return ausgabetext
|
||||
|
||||
# noch nicht implementierte Funktionen:
|
||||
'''
|
||||
def brainfuck_interpreter():
|
||||
eingabetext = Eingabe.get(1.0, END)
|
||||
def brainfuck_interpreter(eingabetext):
|
||||
eingabetext = eingabetext.rstrip()
|
||||
if eingabetext == "":
|
||||
Ausgabe.insert(1.0, """HILFE: [Brainfuckinterpreter]
|
||||
!!!!!ACHTUNG DIESE FUNKTION KANN DAS PROGRAMM ZUM ABSTURZ BRINGEN!!!!!
|
||||
Brainfuck gehört zu den sogenannten esoterischen
|
||||
Programmiersprachen. 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.
|
||||
Folgender Code wäre z.B. "Hello World!" in Brainfuck:
|
||||
++++++++++[>+++++++>++++++++++>+++>+<<<<-]
|
||||
>++.>+.+++++++..+++.>++.<<+++++++++++++++.
|
||||
>.+++.------.--------.>+.>.""" + "\n\n")
|
||||
return hilfetexte.brainfuck_interpreter
|
||||
else:
|
||||
# ein kleiner feiner Code von https://gist.github.com/kates/986792
|
||||
c = [0] * 300000
|
||||
@@ -2667,24 +2651,13 @@ Folgender Code wäre z.B. "Hello World!" in Brainfuck:
|
||||
elif t == "]":
|
||||
i = loop[-1]
|
||||
i += 1
|
||||
Ausgabe.insert(1.0, "".join(rv) + "\n")
|
||||
return "".join(rv)
|
||||
|
||||
|
||||
def ook_interpreter():
|
||||
eingabetext = Eingabe.get(1.0, END)
|
||||
def ook_interpreter(eingabetext):
|
||||
eingabetext = eingabetext.rstrip()
|
||||
if eingabetext == "":
|
||||
Ausgabe.insert(1.0, """HILFE: [Ook-Interpreter]
|
||||
!!!!!ACHTUNG DIESE FUNKTION KANN DAS PROGRAMM ZUM ABSTURZ BRINGEN!!!!!
|
||||
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.""" + "\n\n")
|
||||
return hilfetexte.ook_interpreter
|
||||
else:
|
||||
ookzeichen = [".", "!", "?"]
|
||||
ooktext = ""
|
||||
@@ -2728,5 +2701,4 @@ den Code auszuführen.""" + "\n\n")
|
||||
elif t == "]":
|
||||
i = loop[-1]
|
||||
i += 1
|
||||
Ausgabe.insert(1.0, "".join(rv) + "\n")
|
||||
'''
|
||||
return "".join(rv)
|
||||
|
||||
Reference in New Issue
Block a user