Compare commits

...

2 commits

Author SHA1 Message Date
Tahar Lamred & Theresa Nerz
23d3318be1 Finalize adventure puzzle room 2026-07-01 16:57:34 +02:00
Tahar Lamred & Theresa Nerz
da065aa76f Add puzzle room logic 2026-07-01 16:53:54 +02:00
2 changed files with 30 additions and 14 deletions

View file

@ -9,16 +9,16 @@ def get_db():
db.row_factory = sqlite3.Row
return db
@app.route("/")
@app.route("/app")
@app.route("/app/")
@app.route("/", methods=["GET", "POST"])
@app.route("/app", methods=["GET", "POST"])
@app.route("/app/", methods=["GET", "POST"])
def start():
room_id = request.args.get("room", type=int)
if room_id is None:
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);
""")