33 lines
1.1 KiB
Markdown
33 lines
1.1 KiB
Markdown
|
|
```mermaid
|
||
|
|
flowchart TD
|
||
|
|
A[Start: play_round()] --> B[Deck mischen und Karten austeilen];
|
||
|
|
B --> C[Spieler erhält 2 Karten, Dealer erhält 1 offen, 1 verdeckt];
|
||
|
|
C --> D{Dealer offen Ass oder 10-Wert?};
|
||
|
|
D -- Ja --> E{Dealer hat Blackjack?};
|
||
|
|
E -- Ja --> F[Dealer deckt verdeckte Karte auf];
|
||
|
|
F --> G{Spieler hat auch Blackjack?};
|
||
|
|
G -- Ja --> P[PUSH (Unentschieden)];
|
||
|
|
G -- Nein --> L[Spieler verliert];
|
||
|
|
D -- Nein oder E -- Nein --> H[Spielerzug-Loop];
|
||
|
|
H --> I{Spieler Hit oder Stand?};
|
||
|
|
I -- Hit --> J[Spieler zieht Karte];
|
||
|
|
J --> K{Spieler BUST (> 21)?};
|
||
|
|
K -- Ja --> L;
|
||
|
|
K -- Nein --> H;
|
||
|
|
I -- Stand --> M[Spielerzug beendet];
|
||
|
|
M --> N[Dealer deckt verdeckte Karte auf];
|
||
|
|
N --> O{Dealer Handwert < 17?};
|
||
|
|
O -- Ja --> P1[Dealer zieht Karte];
|
||
|
|
P1 --> O;
|
||
|
|
O -- Nein --> Q{Dealer BUST (> 21)?};
|
||
|
|
Q -- Ja --> W1[Spieler gewinnt 1:1];
|
||
|
|
Q -- Nein --> R[Vergleich: compare_hands(Player vs Dealer)];
|
||
|
|
R --> S{Spielerwert > Dealerwert?};
|
||
|
|
S -- Ja --> W2[Spieler gewinnt (1:1 oder 3:2)];
|
||
|
|
S -- Nein --> T{Spielerwert = Dealerwert?};
|
||
|
|
T -- Ja --> P;
|
||
|
|
T -- Nein --> L;
|
||
|
|
|
||
|
|
L & P & W1 & W2 --> Z[Ende: Chips aktualisieren, neue Runde?]
|
||
|
|
```
|