Highscore Anpassung
This commit is contained in:
parent
3fb01608d7
commit
bb929fa102
2 changed files with 29 additions and 7 deletions
|
|
@ -289,10 +289,19 @@ def get_db():
|
|||
"""
|
||||
CREATE TABLE IF NOT EXISTS spielstand (
|
||||
spieler TEXT PRIMARY KEY,
|
||||
raum_id TEXT
|
||||
raum_id TEXT,
|
||||
start_zeit REAL,
|
||||
fertig_zeit REAL
|
||||
)
|
||||
"""
|
||||
)
|
||||
|
||||
spalten = {row[1] for row in db.execute("PRAGMA table_info(spielstand)")}
|
||||
if "start_zeit" not in spalten:
|
||||
db.execute("ALTER TABLE spielstand ADD COLUMN start_zeit REAL")
|
||||
if "fertig_zeit" not in spalten:
|
||||
db.execute("ALTER TABLE spielstand ADD COLUMN fertig_zeit REAL")
|
||||
|
||||
db.commit()
|
||||
return db
|
||||
|
||||
|
|
@ -310,9 +319,10 @@ def seite_html(inhalt, klasse="puzzle"):
|
|||
def highscore_html(db):
|
||||
eintraege = db.execute(
|
||||
"""
|
||||
SELECT name, fertig_zeit - start_zeit AS dauer
|
||||
FROM spieler
|
||||
SELECT spieler, fertig_zeit - start_zeit AS dauer
|
||||
FROM spielstand
|
||||
WHERE fertig_zeit IS NOT NULL
|
||||
AND start_zeit IS NOT NULL
|
||||
ORDER BY dauer
|
||||
LIMIT 10
|
||||
"""
|
||||
|
|
@ -369,8 +379,12 @@ def start():
|
|||
)
|
||||
spieler_id = cursor.lastrowid
|
||||
db.execute(
|
||||
"INSERT OR IGNORE INTO spielstand (spieler, raum_id) VALUES (?, ?)",
|
||||
(name, "stadiontor"),
|
||||
"INSERT OR IGNORE INTO spielstand (spieler, raum_id, start_zeit, fertig_zeit) VALUES (?, ?, ?, NULL)",
|
||||
(name, "stadiontor", time.time()),
|
||||
)
|
||||
db.execute(
|
||||
"UPDATE spielstand SET raum_id=?, start_zeit=? WHERE spieler=?",
|
||||
("stadiontor", time.time(), name),
|
||||
)
|
||||
db.commit()
|
||||
db.close()
|
||||
|
|
@ -451,11 +465,17 @@ def raum(raum_id):
|
|||
if antwort == richtige_antwort:
|
||||
db = get_db()
|
||||
spieler_id = session.get("spieler_id")
|
||||
spieler_name = session.get("spieler") or session.get("spieler_name")
|
||||
if spieler_id:
|
||||
db.execute(
|
||||
"UPDATE spieler SET fertig_zeit=? WHERE id=? AND fertig_zeit IS NULL",
|
||||
(time.time(), spieler_id),
|
||||
)
|
||||
if spieler_name:
|
||||
db.execute(
|
||||
"UPDATE spielstand SET fertig_zeit=? WHERE spieler=? AND (fertig_zeit IS NULL OR fertig_zeit = 0)",
|
||||
(time.time(), spieler_name),
|
||||
)
|
||||
db.commit()
|
||||
html = (
|
||||
"<h1>Geschafft!</h1>"
|
||||
|
|
|
|||
|
|
@ -36,7 +36,9 @@ db.executescript(
|
|||
|
||||
CREATE TABLE IF NOT EXISTS spielstand (
|
||||
spieler TEXT PRIMARY KEY,
|
||||
raum_id TEXT
|
||||
raum_id TEXT,
|
||||
start_zeit REAL,
|
||||
fertig_zeit REAL
|
||||
);
|
||||
|
||||
INSERT INTO raeume (id, name, beschreibung, raetsel_frage, raetsel_antwort) VALUES
|
||||
|
|
|
|||
Loading…
Reference in a new issue