Glueck-Auf/flask_app/init_db.py
2026-07-15 15:44:05 +02:00

94 lines
2.6 KiB
Python

import sqlite3
from pathlib import Path
DB_PATH = Path(__file__).with_name("adventure.db")
db = sqlite3.connect(DB_PATH)
db.executescript(
"""
DROP TABLE IF EXISTS raeume;
DROP TABLE IF EXISTS ausgaenge;
DROP TABLE IF EXISTS spieler;
DROP TABLE IF EXISTS spielstand;
CREATE TABLE raeume (
id TEXT PRIMARY KEY,
name TEXT,
beschreibung TEXT,
raetsel_frage TEXT,
raetsel_antwort TEXT
);
CREATE TABLE ausgaenge (
von_raum TEXT,
richtung TEXT,
nach_raum TEXT
);
CREATE TABLE spieler (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
start_zeit REAL,
fertig_zeit REAL
);
CREATE TABLE IF NOT EXISTS spielstand (
spieler TEXT PRIMARY KEY,
raum_id TEXT,
start_zeit REAL,
fertig_zeit REAL
);
INSERT INTO raeume (id, name, beschreibung, raetsel_frage, raetsel_antwort) VALUES
(
'stadiontor',
'Stadiontor',
'Vor dir liegt das verschlossene Stadiontor. Zwei Markierungen verraten dir den Code zum Eingang.',
NULL,
NULL
),
(
'tunnel',
'Spielertunnel',
'Hinter dem Tor beginnt der Spielertunnel. Links liegt die Kabine, geradeaus hörst du die Nordkurve und am Rand leuchtet ein Kiosk.',
NULL,
NULL
),
(
'kabine',
'Kabine',
'In der Kabine hängt ein blau-weißes Trikot. Am Spind klebt ein Zettel mit dem Gründungsjahr.',
NULL,
NULL
),
(
'kiosk',
'Kiosk',
'Am Kiosk stehen drei Fächer offen. Du holst dir noch etwas zu trinken und gehst zurück in den Tunnel.',
NULL,
NULL
),
(
'nordkurve',
'Nordkurve',
'Die Fans singen laut, das Flutlicht brennt und Erwin hält ein Schild hoch.',
'Welche Botschaft steht auf Erwins Schild?',
'FC Schalke 04. Wir leben dich'
);
INSERT INTO ausgaenge (von_raum, richtung, nach_raum) VALUES
('stadiontor', 'weiter in den Tunnel', 'tunnel'),
('tunnel', 'links in die Kabine', 'kabine'),
('tunnel', 'geradeaus in die Nordkurve', 'nordkurve'),
('tunnel', 'erst noch etwas trinken holen', 'kiosk'),
('kabine', 'zurück in den Tunnel', 'tunnel'),
('kiosk', 'zurück in den Tunnel', 'tunnel');
"""
)
db.commit()
db.close()
print("Datenbank adventure.db angelegt.")