Add puzzle room logic

This commit is contained in:
Tahar Lamred & Theresa Nerz 2026-07-01 16:53:54 +02:00
parent e5e62b5045
commit da065aa76f
2 changed files with 27 additions and 11 deletions

View file

@ -18,7 +18,7 @@ def start():
return '<h1>Verlies</h1><a href="/app/?room=1">Abenteuer starten</a>'
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 '<h1>Raum nicht gefunden</h1>'
if r["raetsel_frage"]:
if request.method == "POST":
if request.form.get("antwort", "").strip() == r["raetsel_antwort"]:
return "<h1>Befreit!</h1>"
return 'Leider falsch. <a href="/app/?room=' + str(room_id) + '">nochmal</a>'
html = "<h1>" + r["name"] + "</h1>"
html += "<p>" + r["beschreibung"] + "</p>"
html += '<form method="post">' + r["raetsel_frage"] + ' <input name="antwort"><button>OK</button></form>'
return html
html = "<h1>" + r["name"] + "</h1>"
html += "<p>" + r["beschreibung"] + "</p>"
for a in ausgaenge:

View file

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