Buffl

SEP Fragen zum Code

EM
von Evelyn M.









Welchen Vorteil hat es eine HashMap zu Verwenden für die Abwurf-Mechanik?

🧠 Vorteile einer HashMap in der Abwurf-Mechanik:

In der Abwurf-Logik speichern wir, welcher Spieler welche Karte als Erster abgeworfen hat. Dafür eignet sich eine HashMap<Card, String> besonders gut – aus mehreren Gründen:

1. Schneller Zugriff (O(1))

  • HashMap ermöglicht konstante Zugriffszeit auf Elemente

  • Bei jedem neuen Abwurf können wir sofort prüfen, ob die Karte bereits existiert:

    if (discardedCards.containsKey(card)) { ... }

  • Das ist viel schneller als z. B. eine Liste durchzugehen (O(n))

2. Direkte Zuordnung (Key → Value)

  • Die Card ist der Key – eindeutig und direkt abrufbar

  • Der Wert (String) ist der Spielername, der die Karte zuerst abgeworfen hat

  • Das macht den Code lesbar und logisch:

    discardedCards.get(card) → gibt den ursprünglichen Spieler zurück

3. Einfache Verwaltung von Zuständen

  • Mit put() und remove() kann der Zustand einer Karte gezielt aktualisiert oder entfernt werden

  • Kein komplexes Durchsuchen nötig – ideal für Spiellogik mit vielen Kartenoperationen

4. Keine Duplikate

  • Eine Map lässt jeden Key nur einmal zu – damit ist sichergestellt, dass dieselbe Karte nicht mehrfach gleichzeitig gespeichert wird (z. B. versehentlich bei zwei Spielern gleichzeitig)

📝 Fazit:

Die Verwendung einer HashMap ist hier ideal, weil sie effizient, klar und verlässlich ist. Sie erlaubt es, pro Karte genau einen „Besitzer“ im Abwurfstatus zu verwalten – bei gleichzeitig minimalem Rechenaufwand. Perfekt für die Echtzeitspiel-Logik von Duolatro.


Author

Evelyn M.

Informationen

Zuletzt geändert