brainfuck ook

This commit is contained in:
2025-08-08 22:30:28 +02:00
parent e13926d5db
commit b2adc2a73c
3 changed files with 32 additions and 37 deletions

View File

@@ -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,

View File

@@ -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.")

View File

@@ -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)