2025-10-27 18:25:57 +01:00
|
|
|
# Game flow
|
|
|
|
|
|
|
|
|
|
## Flowchart
|
2025-10-27 18:05:30 +01:00
|
|
|
|
2025-10-27 18:03:06 +01:00
|
|
|
```mermaid
|
|
|
|
|
flowchart TD
|
2025-10-27 18:25:57 +01:00
|
|
|
A[Start] --> B[Shuffle deck and deal cards]
|
2025-10-27 18:05:30 +01:00
|
|
|
B --> C[Player gets 2 cards, Dealer gets 1 face-up, 1 face-down]
|
2025-10-27 18:25:57 +01:00
|
|
|
C --> D{Dealer shows Ace or 10}
|
|
|
|
|
D -- Yes --> E{Dealer has Blackjack}
|
2025-10-27 18:05:30 +01:00
|
|
|
E -- Yes --> F[Dealer reveals face-down card]
|
2025-10-27 18:25:57 +01:00
|
|
|
F --> G{Player also has Blackjack}
|
2025-10-27 18:08:39 +01:00
|
|
|
G -- Yes --> P[Tie]
|
2025-10-27 18:05:30 +01:00
|
|
|
G -- No --> L[Player loses]
|
2025-10-27 18:25:57 +01:00
|
|
|
D -- No --> H[Player turn begins]
|
2025-10-27 18:05:30 +01:00
|
|
|
E -- No --> H
|
2025-10-27 18:25:57 +01:00
|
|
|
H --> I{Hit or Stand}
|
2025-10-27 18:08:39 +01:00
|
|
|
I -- Hit --> J[Player draws card]
|
2025-10-27 18:25:57 +01:00
|
|
|
J --> K{Player busts}
|
|
|
|
|
K -- Yes --> L[Player loses]
|
2025-10-27 18:05:30 +01:00
|
|
|
K -- No --> H
|
2025-10-27 18:08:39 +01:00
|
|
|
I -- Stand --> M[Player ends turn]
|
2025-10-27 18:05:30 +01:00
|
|
|
M --> N[Dealer reveals face-down card]
|
2025-10-27 18:25:57 +01:00
|
|
|
N --> O{Dealer hand < 17}
|
2025-10-27 18:08:39 +01:00
|
|
|
O -- Yes --> P1[Dealer draws card]
|
2025-10-27 18:05:30 +01:00
|
|
|
P1 --> O
|
2025-10-27 18:25:57 +01:00
|
|
|
O -- No --> Q{Dealer busts}
|
|
|
|
|
Q -- Yes --> W1[Player wins]
|
2025-10-27 18:08:39 +01:00
|
|
|
Q -- No --> R[Compare hands]
|
2025-10-27 18:25:57 +01:00
|
|
|
R --> S{Player > Dealer}
|
|
|
|
|
S -- Yes --> W2[Player wins]
|
|
|
|
|
S -- No --> T{Player = Dealer}
|
|
|
|
|
T -- Yes --> P[Tie]
|
|
|
|
|
T -- No --> L[Player loses]
|
|
|
|
|
L --> Z[End: update chips, new round]
|
2025-10-27 18:05:30 +01:00
|
|
|
P --> Z
|
|
|
|
|
W1 --> Z
|
|
|
|
|
W2 --> Z
|
2025-10-27 18:03:06 +01:00
|
|
|
```
|
2025-10-27 18:25:57 +01:00
|
|
|
|
|
|
|
|
## Sequence Diagram
|
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
sequenceDiagram
|
|
|
|
|
participant Player
|
|
|
|
|
participant Dealer
|
|
|
|
|
participant Game
|
|
|
|
|
|
|
|
|
|
Game->>Player: Deal 2 cards
|
|
|
|
|
Game->>Dealer: Deal 1 face-up, 1 face-down
|
|
|
|
|
Dealer->>Game: Check for Blackjack
|
|
|
|
|
alt Dealer has Blackjack
|
|
|
|
|
Dealer->>Player: Reveal face-down card
|
|
|
|
|
alt Player also has Blackjack
|
|
|
|
|
Game->>Player: PUSH (Tie)
|
|
|
|
|
else Player does not have Blackjack
|
|
|
|
|
Game->>Player: Player loses
|
|
|
|
|
end
|
|
|
|
|
else No Blackjack
|
|
|
|
|
loop Player's turn
|
|
|
|
|
Player->>Game: Hit or Stand
|
|
|
|
|
alt Hit
|
|
|
|
|
Game->>Player: Deal card
|
|
|
|
|
Player->>Game: Check for bust
|
|
|
|
|
alt Bust
|
|
|
|
|
Game->>Player: Player loses
|
|
|
|
|
else Not bust
|
|
|
|
|
Player->>Game: Continue
|
|
|
|
|
end
|
|
|
|
|
else Stand
|
|
|
|
|
Player->>Game: End turn
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
Dealer->>Game: Reveal face-down card
|
|
|
|
|
loop Dealer draws until >= 17
|
|
|
|
|
Dealer->>Game: Draw card
|
|
|
|
|
end
|
|
|
|
|
Dealer->>Game: Check for bust
|
|
|
|
|
alt Dealer busts
|
|
|
|
|
Game->>Player: Player wins
|
|
|
|
|
else Compare hands
|
|
|
|
|
alt Player > Dealer
|
|
|
|
|
Game->>Player: Player wins
|
|
|
|
|
else Player = Dealer
|
|
|
|
|
Game->>Player: PUSH (Tie)
|
|
|
|
|
else Dealer > Player
|
|
|
|
|
Game->>Player: Player loses
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
```
|