"""Manages high scores in memory (no file I/O, compatible with web builds)."""
import datetime
[docs]
MAX_SCORES_DISPLAY = 10
_session_scores = []
[docs]
def get_session_filename():
"""Returns a pseudo-filename used as a key; no actual file is created."""
now = datetime.datetime.now()
timestamp = now.strftime("%Y-%m-%d_%H-%M-%S")
return f"scores_{timestamp}.json"
[docs]
def add_score_to_session(score_entry, filename):
"""Adds a score to the in-memory session store."""
_session_scores.append(score_entry)
[docs]
def load_high_scores():
"""Returns all in-memory scores, sorted descending."""
sorted_scores = sorted(_session_scores, key=lambda x: x.get('score', 0), reverse=True)
return sorted_scores[:MAX_SCORES_DISPLAY]
[docs]
def load_scores(filename):
"""Returns in-memory scores for this session."""
return list(_session_scores)