added charts
This commit is contained in:
@@ -1,37 +1,92 @@
|
|||||||
# Game flowchart
|
# Game flow
|
||||||
|
|
||||||
|
## Flowchart
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
flowchart TD
|
flowchart TD
|
||||||
A[Start] --> B[Shuffle and deal cards]
|
A[Start] --> B[Shuffle deck and deal cards]
|
||||||
B --> C[Player gets 2 cards, Dealer gets 1 face-up, 1 face-down]
|
B --> C[Player gets 2 cards, Dealer gets 1 face-up, 1 face-down]
|
||||||
C --> D{Dealer shows Ace or 10?}
|
C --> D{Dealer shows Ace or 10}
|
||||||
D -- Yes --> E{Dealer has Blackjack?}
|
D -- Yes --> E{Dealer has Blackjack}
|
||||||
E -- Yes --> F[Dealer reveals face-down card]
|
E -- Yes --> F[Dealer reveals face-down card]
|
||||||
F --> G{Player also has Blackjack?}
|
F --> G{Player also has Blackjack}
|
||||||
G -- Yes --> P[Tie]
|
G -- Yes --> P[Tie]
|
||||||
G -- No --> L[Player loses]
|
G -- No --> L[Player loses]
|
||||||
D -- No --> H[Player turn]
|
D -- No --> H[Player turn begins]
|
||||||
E -- No --> H
|
E -- No --> H
|
||||||
H --> I{Hit or Stand?}
|
H --> I{Hit or Stand}
|
||||||
I -- Hit --> J[Player draws card]
|
I -- Hit --> J[Player draws card]
|
||||||
J --> K{Player busts (>21)?}
|
J --> K{Player busts}
|
||||||
K -- Yes --> L
|
K -- Yes --> L[Player loses]
|
||||||
K -- No --> H
|
K -- No --> H
|
||||||
I -- Stand --> M[Player ends turn]
|
I -- Stand --> M[Player ends turn]
|
||||||
M --> N[Dealer reveals face-down card]
|
M --> N[Dealer reveals face-down card]
|
||||||
N --> O{Dealer hand < 17?}
|
N --> O{Dealer hand < 17}
|
||||||
O -- Yes --> P1[Dealer draws card]
|
O -- Yes --> P1[Dealer draws card]
|
||||||
P1 --> O
|
P1 --> O
|
||||||
O -- No --> Q{Dealer busts (>21)?}
|
O -- No --> Q{Dealer busts}
|
||||||
Q -- Yes --> W1[Player wins 1:1]
|
Q -- Yes --> W1[Player wins]
|
||||||
Q -- No --> R[Compare hands]
|
Q -- No --> R[Compare hands]
|
||||||
R --> S{Player > Dealer?}
|
R --> S{Player > Dealer}
|
||||||
S -- Yes --> W2[Player wins 1:1 or 3:2]
|
S -- Yes --> W2[Player wins]
|
||||||
S -- No --> T{Player = Dealer?}
|
S -- No --> T{Player = Dealer}
|
||||||
T -- Yes --> P
|
T -- Yes --> P[Tie]
|
||||||
T -- No --> L
|
T -- No --> L[Player loses]
|
||||||
L --> Z[End]
|
L --> Z[End: update chips, new round]
|
||||||
P --> Z
|
P --> Z
|
||||||
W1 --> Z
|
W1 --> Z
|
||||||
W2 --> Z
|
W2 --> Z
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user