modified: app.py

modified:   templates/quiz_buzzer_multiplayer.html
This commit is contained in:
Simon
2026-02-20 22:54:29 +01:00
parent f08013ebaf
commit 3f3de7821f
2 changed files with 27 additions and 2 deletions

15
app.py
View File

@@ -468,6 +468,21 @@ def reset_quiz(playlist_id):
return redirect(url_for('quiz', playlist_id=playlist_id, mode=next_mode))
return redirect(url_for('playlists'))
@app.route("/update_player_score/<playlist_id>", methods=["POST"])
def update_player_score(playlist_id):
"""Aktualisiert den Score eines einzelnen Spielers in der Session."""
data = request.json
player_id = data.get('player_id') # 1-basiert
delta = data.get('delta', 0)
if not player_id:
return {"error": "Missing player_id"}, 400
key = f'player_scores_{playlist_id}'
player_scores = session.get(key, [0, 0, 0, 0])
player_scores[player_id - 1] += delta
session[key] = player_scores
session.modified = True
return {"success": True, "new_score": player_scores[player_id - 1]}
@app.route("/reset_scores/<playlist_id>")
def reset_scores(playlist_id):
"""Reset nur die Scores, aber behalte gespielte Tracks."""

View File

@@ -688,10 +688,19 @@
});
}
function applyScoreToServer(playerId, delta) {
return fetch('/update_player_score/{{ playlist_id }}', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ player_id: playerId, delta: delta })
});
}
function continueGame() {
// Wende Minuspunkte an
// Wende Minuspunkte an (lokal und auf Server)
players[currentBuzzer - 1].score += pendingPoints;
updateScoreboard();
applyScoreToServer(currentBuzzer, pendingPoints);
// Reset für nächsten Buzzer
document.getElementById('answerSection').classList.remove('active');
@@ -718,9 +727,10 @@
}
function showSolution() {
// Wende Minuspunkte an
// Wende Minuspunkte an (lokal und auf Server)
players[currentBuzzer - 1].score += pendingPoints;
updateScoreboard();
applyScoreToServer(currentBuzzer, pendingPoints);
const resultContainer = document.getElementById('resultContainer');
resultContainer.innerHTML = `