@startuml participant Main order 10 participant Game order 20 participant Message order 30 participant Dealer order 40 participant Player order 50 #AliceBlue participant NPC order 60 #LavenderBlush participant Deck order 70 participant Card order 80 skinparam responseMessageBelowArrow true group #LightGoldenRodYellow Game を new する Main -> Game : Game を new する activate Game Game -> Dealer : Dealer を new する activate Dealer Dealer -> Deck : Deck を new する activate Deck Deck -> Card : カード52枚を取得する activate Card Card --> Deck : カード52枚を返却する deactivate Card Game -> Player : Player を new する activate Player #AliceBlue end group #LightGoldenRodYellow ゲームの設定をする Main -> Game : ブラックジャックの\n設定をする Game -> Message : プレイヤー数を決める(メッセージ表示) note over Message ブラックジャックの設定をします。 プレイヤーの人数を選んでください。(1, 2, 3) end note Game -> NPC : 決めた人数の NPC を new する activate NPC #LavenderBlush end group #LightGoldenRodYellow ゲームを開始する Main -> Game : ブラックジャックを\n開始する Game -> Dealer : デッキをシャッフルする Dealer -> Deck : デッキをシャッフルする Dealer -> Deck : デッキからプレイヤーに手札2枚を配る Deck --> Player Dealer -> Deck : デッキから NPC に手札2枚を配る Deck --> NPC Dealer -> Deck : デッキから ディーラー に手札2枚を配る Deck --> Dealer Game -> Message : ブラックジャックの開始時の\nメッセージを表示する note over Message ブラックジャックを開始します。 あなたの引いたカードはハートの7です。 あなたの引いたカードはクラブの8です。 ディーラーの引いたカードはダイヤのQです。 ディーラーの引いた2枚目のカードはわかりません。 あなたの現在の得点は15です。カードを引きますか?(Y/N) end note end group #LightGoldenRodYellow ゲームを進行する group #AliceBlue Player(あなた)は Hit か Stand かを選択する alt Y (Hit) Game -> Player : プレイヤーは1枚カードを引く Player -> Deck : 1枚カードを引く Deck --> Player : 1枚カードを返す Player -> Player : 得点を計算する Game -> Dealer : ディーラーはバーストか否かチェックする Dealer -> Player : バーストか否かチェックする alt カードの合計値が 21 を超えていない場合 Dealer --> Game : Game -> Message : メッセージを表示する note over Message あなたの引いたカードはスペードの5です。 あなたの現在の得点は20です。カードを引きますか?(Y/N) end note else Burst (カードの合計値が 21 を超えていた場合) Dealer -> Player : ステータスを\n「burst」に変更する Dealer --> Game : end else N (Stand) Game -> Message : メッセージを表示する note over Message あなたの引いた2枚目のカードはダイヤの2でした。 あなたの現在の得点は12です。 end note Game -> Player : ステータスを\n「stand」に変更する else 再入力 Game -> Message : メッセージを表示する note over Message Y/N で入力してください。カードを引きますか?(Y/N) end note Game -> Game : 再入力 end alt Burst (プレイヤーのカードの合計値が 21 を超えていた場合) Game -> Message : メッセージを表示する note over Message #Yellow あなたの引いたカードはダイヤのJです。 あなたの現在の得点は25です。 合計値が21を超えたので、あなたの負けです。 end note end end group #LavenderBlush NPC(NPC1, NPC2)がいれば Hit か Stand かを選択する(自動) alt Y (Hit) Game -> NPC : NPC は1枚カードを引く NPC -> Deck : 1枚カードを引く Deck --> NPC : 1枚カードを返す NPC -> NPC : 得点を計算する Game -> Dealer : ディーラーはバーストか否かチェックする Dealer -> NPC : バーストか否かチェックする alt カードの合計値が 21 を超えていない場合 Dealer --> Game : Game -> Message : メッセージを表示する note over Message NPC の引いたカードはスペードの5です。 NPC の現在の得点は20です。カードを引きますか?(Y/N) end note else Burst (カードの合計値が 21 を超えていた場合) Dealer -> NPC : ステータスを\n「burst」に変更する Dealer --> Game : end else N (Stand) Game -> Message : メッセージを表示する note over Message NPC の引いた2枚目のカードはダイヤの2でした。 NPC の現在の得点は12です。 end note Game -> Player : ステータスを\n「stand」に変更する else 再入力 Game -> Message : メッセージを表示する note over Message Y/N で入力してください。カードを引きますか?(Y/N) end note Game -> Game : 再入力 end alt Burst (プNPC カードの合計値が 21 を超えていた場合) Game -> Message : メッセージを表示する note over Message #Yellow NPC の引いたカードはダイヤのJです。 NPC の現在の得点は25です。 合計値が21を超えたので、 NPC の負けです。 end note end end end group #LightGoldenRodYellow 結果を判定する alt Stand (カードの合計値が 21 以下) のプレイヤーが残っていた場合 Game -> Dealer : ディーラーは自分のカードの合計値が\n 17 以上になるまで引き続ける loop Dealer -> Deck : 1枚カードを引く Deck --> Dealer : 1枚カードを返す Dealer -> Dealer : 得点を計算する Dealer -> Dealer : ステータスを変更する Dealer -> Message : メッセージを表示する note over Message ディーラーの引いたカードはハートのKです。 end note end alt Burst (ディーラーのカードの合計値が 21 を超えていた場合) Dealer -> Message : メッセージを表示する note over Message #Yellow ディーラーの得点は22です。 合計値が21を超えたので、ディーラーはバーストしました。 あなたの勝ちです! (NPCの勝ちです!) end note else ディーラーのカードの合計値が 21 を超えていない場合 Dealer -> Dealer : 勝敗を判定する Dealer -> Dealer : スコアを取得する Dealer -> Player : スコアを取得する Dealer -> Player : ステータスを\nwin, lose, draw に変更する Dealer -> NPC : ステータスを\nwin, lose, draw に変更する note over Game #Yellow あなたの勝ちです! (NPCの勝ちです!) ブラックジャックを終了します。 end note end Game --> Main : ゲーム終了 deactivate Game deactivate Dealer deactivate Player deactivate NPC deactivate Deck end end @enduml
Decode URL
Submit
amiga
aws-orange
black-knight
bluegray
blueprint
cerulean-outline
cerulean
crt-amber
crt-green
cyborg-outline
cyborg
hacker
lightgray
mars
materia-outline
materia
metal
mimeograph
minty
plain
reddress-darkblue
reddress-darkgreen
reddress-darkorange
reddress-darkred
reddress-lightblue
reddress-lightgreen
reddress-lightorange
reddress-lightred
sandstone
silver
sketchy-outline
sketchy
spacelab
spacelab-white
superhero-outline
superhero
toy
united
vibrant
Pure Javascript
PNG
SVG
ASCII Art