Zum Hauptinhalt springen

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.