From e8b2c772f3b69b2544c06b6bda17972b2e617211 Mon Sep 17 00:00:00 2001 From: cerberus Date: Sun, 26 Oct 2025 22:00:41 +0100 Subject: [PATCH] update README --- README.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5ca4244..73aa44c 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # Blackjack Game Design Document ## 1. Flowchart (Spielablauf) + ```mermaid flowchart TD A([Start]) --> B[Deck erstellen und mischen] @@ -29,6 +30,7 @@ flowchart TD ``` ## 2. UML-Klassendiagramm + ```mermaid classDiagram class Card { @@ -86,6 +88,7 @@ classDiagram ## 3. Implementierungs-Roadmap mit Tests ### Phase 1: Grundstruktur + - **Ziel:** Klassen anlegen, ohne Logik. - Dateien: `card.py`, `deck.py`, `hand.py`, `player.py`, `dealer.py`, `game.py`, `main.py`. - Methoden-Signaturen definieren. @@ -95,10 +98,12 @@ classDiagram --- ### Phase 2: Card + - `__init__`: Speichert Rang, Farbe, Wert. - `__str__`: Gibt z. B. "K♠" zurück. **Test:** + ```python card = Card("A", "♠") print(card) # Erwartet: A♠ @@ -107,43 +112,51 @@ print(card) # Erwartet: A♠ --- ### Phase 3: Deck + - `__init__`: Erzeugt 52 Karten. - `shuffle()`: Mischt die Karten. - `deal_card()`: Gibt eine Karte zurück und entfernt sie. **Test:** + - Prüfe, ob `len(deck.cards) == 52` nach Erstellung. - Nach `deal_card()`: Länge = 51. --- ### Phase 4: Hand + - `add_card(card)`: Fügt Karte hinzu. - `calculate_value()`: Summiert Werte. - `adjust_for_ace()`: Reduziert Ass von 11 auf 1, wenn nötig. **Test:** + - Hand mit Ass + 9 → Wert = 20. - Hand mit Ass + 9 + 5 → Wert = 15. --- ### Phase 5: Player & Dealer + - `Player.hit(deck)`: Karte ziehen. - `Dealer.play(deck)`: Zieht bis Wert ≥ 17. **Test:** + - Spieler zieht Karte → Handgröße +1. - Dealer zieht automatisch bis ≥ 17. --- ### Phase 6: Game + - `play_round()`: Ablauf wie im Flowchart. - `compare_hands()`: Gewinner bestimmen. - `show_cards()`: Karten anzeigen. **Test:** + - Simuliere eine Runde: - Spieler steht sofort. - Dealer spielt. @@ -152,17 +165,20 @@ print(card) # Erwartet: A♠ --- ### Phase 7: Erweiterungen + - Chips & Einsätze. - Mehrere Spieler. - Features wie Split, Double Down. **Test:** + - Chips reduzieren sich nach Einsatz. - Gewinn/Verlust korrekt berechnet. --- ### Teststrategie + - **Unit-Tests** für jede Klasse (z. B. mit `pytest`). - **Integrationstest**: Komplette Runde simulieren. - **Edge Cases**: @@ -170,7 +186,6 @@ print(card) # Erwartet: A♠ - Spieler oder Dealer hat Blackjack. - Beide haben denselben Wert. - ### Projektstruktur für OOP-Blackjack ```plaintext