brainfuck ook
This commit is contained in:
@@ -272,7 +272,12 @@ def auswahl_verarbeiten():
|
|||||||
elif "ADFGVX dekodieren" in auswahl:
|
elif "ADFGVX dekodieren" in auswahl:
|
||||||
st.session_state.output_text = tools.adfgvx_dekodieren(text, additional_parameter)
|
st.session_state.output_text = tools.adfgvx_dekodieren(text, additional_parameter)
|
||||||
st.session_state.map_data = None
|
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
|
# Standardwerte im Session State initialisieren
|
||||||
if 'option' not in st.session_state:
|
if 'option' not in st.session_state:
|
||||||
@@ -370,6 +375,8 @@ option = st.sidebar.radio("hidden_label",
|
|||||||
":green[ADFGX dekodieren]",
|
":green[ADFGX dekodieren]",
|
||||||
":green[ADFGVX kodieren]",
|
":green[ADFGVX kodieren]",
|
||||||
":green[ADFGVX dekodieren]",
|
":green[ADFGVX dekodieren]",
|
||||||
|
":green-badge[Brainfuck-Interpreter]",
|
||||||
|
":green-badge[Ook-Interpreter]",
|
||||||
),
|
),
|
||||||
key='option',
|
key='option',
|
||||||
on_change=auswahl_verarbeiten,
|
on_change=auswahl_verarbeiten,
|
||||||
|
|||||||
@@ -279,7 +279,7 @@ wortsuche_de = ("### Wortsuche mit Wörterbuch DE\n"
|
|||||||
"Beispiel: \n"
|
"Beispiel: \n"
|
||||||
"Ge*ca**i** -> Geocaching \n"
|
"Ge*ca**i** -> Geocaching \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 "
|
"Diese Funktion nutzt dafür die deutsche Wörterbuchdatei vom Project "
|
||||||
"https://sourceforge.net/projects/germandict")
|
"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.')
|
'ersten Schritt aufgefüllt wird. Entweder in alphabetischer Reihenfolge A->Z oder umgekehrt Z->A.')
|
||||||
adfgx_kodieren = f"### HILFE: ADFGX kodieren\n{adfgx}"
|
adfgx_kodieren = f"### HILFE: ADFGX kodieren\n{adfgx}"
|
||||||
adfgx_dekodieren = f"### HILFE: ADFGX dekodieren\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 '
|
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'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}')
|
f'Alles andere funktioniert wie bei ... \n \n__ADFGX:__ \n{adfgx}')
|
||||||
adfgvx_kodieren = f"### HILFE: ADFGVX kodieren\n{adfgvx}"
|
adfgvx_kodieren = f"### HILFE: ADFGVX kodieren\n{adfgvx}"
|
||||||
adfgvx_dekodieren = f"### HILFE: ADFGVX dekodieren\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}"
|
ausgabetext += f":blue[dekodiert mit Variante 9-0,Z-A:] \n{klartext_90za}"
|
||||||
return ausgabetext
|
return ausgabetext
|
||||||
|
|
||||||
# noch nicht implementierte Funktionen:
|
def brainfuck_interpreter(eingabetext):
|
||||||
'''
|
|
||||||
def brainfuck_interpreter():
|
|
||||||
eingabetext = Eingabe.get(1.0, END)
|
|
||||||
eingabetext = eingabetext.rstrip()
|
eingabetext = eingabetext.rstrip()
|
||||||
if eingabetext == "":
|
if eingabetext == "":
|
||||||
Ausgabe.insert(1.0, """HILFE: [Brainfuckinterpreter]
|
return hilfetexte.brainfuck_interpreter
|
||||||
!!!!!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")
|
|
||||||
else:
|
else:
|
||||||
# ein kleiner feiner Code von https://gist.github.com/kates/986792
|
# ein kleiner feiner Code von https://gist.github.com/kates/986792
|
||||||
c = [0] * 300000
|
c = [0] * 300000
|
||||||
@@ -2667,24 +2651,13 @@ Folgender Code wäre z.B. "Hello World!" in Brainfuck:
|
|||||||
elif t == "]":
|
elif t == "]":
|
||||||
i = loop[-1]
|
i = loop[-1]
|
||||||
i += 1
|
i += 1
|
||||||
Ausgabe.insert(1.0, "".join(rv) + "\n")
|
return "".join(rv)
|
||||||
|
|
||||||
|
|
||||||
def ook_interpreter():
|
def ook_interpreter(eingabetext):
|
||||||
eingabetext = Eingabe.get(1.0, END)
|
|
||||||
eingabetext = eingabetext.rstrip()
|
eingabetext = eingabetext.rstrip()
|
||||||
if eingabetext == "":
|
if eingabetext == "":
|
||||||
Ausgabe.insert(1.0, """HILFE: [Ook-Interpreter]
|
return hilfetexte.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")
|
|
||||||
else:
|
else:
|
||||||
ookzeichen = [".", "!", "?"]
|
ookzeichen = [".", "!", "?"]
|
||||||
ooktext = ""
|
ooktext = ""
|
||||||
@@ -2728,5 +2701,4 @@ den Code auszuführen.""" + "\n\n")
|
|||||||
elif t == "]":
|
elif t == "]":
|
||||||
i = loop[-1]
|
i = loop[-1]
|
||||||
i += 1
|
i += 1
|
||||||
Ausgabe.insert(1.0, "".join(rv) + "\n")
|
return "".join(rv)
|
||||||
'''
|
|
||||||
|
|||||||
Reference in New Issue
Block a user