Mini-Projekt: Highscore-Liste
Anforderungen
- Datei
highscores.json - sicher laden (Default leere Liste)
- Name + Punkte eintragen
- speichern
- Liste anzeigen (sortiert optional)
Beispiellösung
Lösung anzeigen
# Highscore-Liste
import json
PFAD = "highscores.json"
def laden():
try:
with open(PFAD, "r", encoding="utf-8") as f:
return json.load(f)
except (FileNotFoundError, json.JSONDecodeError):
return []
def speichern(daten):
with open(PFAD, "w", encoding="utf-8") as f:
json.dump(daten, f, indent=2, ensure_ascii=False)
def anzeigen(daten):
if not daten:
print("Noch keine Scores.")
return
# sortiert absteigend nach punkte
sortiert = sorted(daten, key=lambda x: x["punkte"], reverse=True)
print("=== Highscores ===")
for i, eintrag in enumerate(sortiert, start=1):
print(f"{i}. {eintrag['name']}: {eintrag['punkte']}")
scores = laden()
print("1) Anzeigen 2) Neuer Score 3) Ende")
wahl = input("Wahl: ").strip()
if wahl == "1":
anzeigen(scores)
elif wahl == "2":
name = input("Name: ").strip().title()
punkte = int(input("Punkte: "))
scores.append({"name": name, "punkte": punkte})
speichern(scores)
print("Gespeichert!")
anzeigen(scores)
Hinweis: sorted(..., key=lambda ...) ist etwas fortgeschritten – du darfst auch unsortiert ausgeben.
Kapitel 22 geschafft!
Als Nächstes: Programme planen.