From da065aa76fe6786b42e18bb947ee040d8b46467e Mon Sep 17 00:00:00 2001 From: Tahar Lamred & Theresa Nerz Date: Wed, 1 Jul 2026 16:53:54 +0200 Subject: [PATCH] Add puzzle room logic --- app/app.py | 13 ++++++++++++- app/init_db.py | 25 +++++++++++++++---------- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/app/app.py b/app/app.py index 3f51740..711d0e5 100644 --- a/app/app.py +++ b/app/app.py @@ -18,7 +18,7 @@ def start(): return '

Verlies

Abenteuer starten' db = get_db() - r = db.execute("SELECT name, beschreibung FROM raeume WHERE id = ?", (room_id,)).fetchone() + r = db.execute("SELECT name, beschreibung, raetsel_frage, raetsel_antwort FROM raeume WHERE id = ?", (room_id,)).fetchone() ausgaenge = db.execute( "SELECT richtung, nach_raum FROM ausgaenge WHERE von_raum = ?", (room_id,) ).fetchall() @@ -27,6 +27,17 @@ def start(): if r is None: return '

Raum nicht gefunden

' + if r["raetsel_frage"]: + if request.method == "POST": + if request.form.get("antwort", "").strip() == r["raetsel_antwort"]: + return "

Befreit!

" + return 'Leider falsch. nochmal' + + html = "

" + r["name"] + "

" + html += "

" + r["beschreibung"] + "

" + html += '
' + r["raetsel_frage"] + '
' + return html + html = "

" + r["name"] + "

" html += "

" + r["beschreibung"] + "

" for a in ausgaenge: diff --git a/app/init_db.py b/app/init_db.py index 55269a2..8530b66 100644 --- a/app/init_db.py +++ b/app/init_db.py @@ -3,29 +3,34 @@ import sqlite3 db = sqlite3.connect("adventure.db") # Datei wird angelegt, falls nicht da db.executescript(""" -CREATE TABLE IF NOT EXISTS raeume ( +DROP TABLE IF EXISTS raeume; +DROP TABLE IF EXISTS ausgaenge; + +CREATE TABLE raeume ( id INTEGER PRIMARY KEY, name TEXT, - beschreibung TEXT + beschreibung TEXT, + raetsel_frage TEXT, + raetsel_antwort TEXT ); -CREATE TABLE IF NOT EXISTS ausgaenge ( +CREATE TABLE ausgaenge ( von_raum INTEGER, richtung TEXT, nach_raum INTEGER ); -DELETE FROM raeume; -DELETE FROM ausgaenge; - -INSERT INTO raeume (id, name, beschreibung) VALUES - (1, 'Eingangshalle', 'Eine schwere Tür fällt hinter dir zu. Zwei Gänge führen ins Dunkel.'), - (2, 'Krypta', 'Kaltes Kerzenlicht flackert an den Wänden.'), - (3, 'Bibliothek', 'Staubige Bücher stapeln sich bis zur Decke.'); +INSERT INTO raeume (id, name, beschreibung, raetsel_frage, raetsel_antwort) VALUES + (1, 'Eingangshalle', 'Eine schwere Tür fällt hinter dir zu. Zwei Gänge führen ins Dunkel.', NULL, NULL), + (2, 'Krypta', 'Kaltes Kerzenlicht flackert an den Wänden.', NULL, NULL), + (3, 'Bibliothek', 'Staubige Bücher stapeln sich bis zur Decke.', NULL, NULL), + (4, 'Schatzkammer', 'Eine verschlossene Truhe glänzt im Halbdunkel.', 'Wie viele Beine hat eine Spinne?', '8'); INSERT INTO ausgaenge (von_raum, richtung, nach_raum) VALUES (1, 'links', 2), (1, 'rechts', 3), (2, 'zurück', 1), + (2, 'vor', 4), + (2, 'hoch', 3), (3, 'zurück', 1); """)