2.2 KiB
2.2 KiB
Game flow
Flowchart
flowchart TD
A[Start] --> B[Shuffle deck and deal cards]
B --> C[Player gets 2 cards, Dealer gets 1 face-up, 1 face-down]
C --> D{Dealer shows Ace or 10}
D -- Yes --> E{Dealer has Blackjack}
E -- Yes --> F[Dealer reveals face-down card]
F --> G{Player also has Blackjack}
G -- Yes --> P[Tie]
G -- No --> L[Player loses]
D -- No --> H[Player turn begins]
E -- No --> H
H --> I{Hit or Stand}
I -- Hit --> J[Player draws card]
J --> K{Player busts}
K -- Yes --> L[Player loses]
K -- No --> H
I -- Stand --> M[Player ends turn]
M --> N[Dealer reveals face-down card]
N --> O{Dealer hand < 17}
O -- Yes --> P1[Dealer draws card]
P1 --> O
O -- No --> Q{Dealer busts}
Q -- Yes --> W1[Player wins]
Q -- No --> R[Compare hands]
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]
P --> Z
W1 --> Z
W2 --> Z
Sequence Diagram
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