┌────┐ ┌────┐ ┌───────┐ ┌──────┐ ┌──────┐ ┌───┐ ┌────┐ ┌────┐ │Main│ │Game│ │Message│ │Dealer│ │Player│ │NPC│ │Deck│ │Card│ └──┬─┘ └──┬─┘ └───┬───┘ └───┬──┘ └───┬──┘ └─┬─┘ └──┬─┘ └──┬─┘ │ │ │ │ │ │ │ │ ╔════════════╪═══╤════════════════╪═══════════════════════════════════════╪══════════════════════╪══════════════════════════════╪════════════════════════╪════════════════════════╪════════════════════════╪════════════╗ ║ GAME を NEW する│ / │ │ │ │ │ │ │ ║ ╟──────────────Game を new する ┌┴┐ │ │ │ │ │ │ ║ ║ │──────────────────>│ │ │ │ │ │ │ │ ║ ║ │ │ │ │ │ │ │ │ │ ║ ║ │ │ │ Dealer を new する ┌┴┐ │ │ │ │ ║ ║ │ │ │ ──────────────────────────────────────────────────────────>│ │ │ │ │ │ ║ ║ │ │ │ │ │ │ │ │ │ │ ║ ║ │ │ │ │ │ │ │ Deck を new する │ ┌┴┐ │ ║ ║ │ │ │ │ │ │ ────────────────────────────────────────────────────────────────────────────>│ │ │ ║ ║ │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ │ │ │ │ │ │ │ │ │ カード52枚を取得する ┌┴┐ ║ ║ │ │ │ │ │ │ │ │ │ │ ────────────────────>│ │ ║ ║ │ │ │ │ │ │ │ │ │ │ └┬┘ ║ ║ │ │ │ │ │ │ │ │ │ │ カード52枚を返却する │ ║ ║ │ │ │ │ │ │ │ │ │ │ <─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│ ║ ║ │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ │ │ Player を new する │ │ ┌┴┐ │ │ │ │ ║ ║ │ │ │ ─────────────────────────────────────────────────────────────────────────────────────────>│ │ │ │ │ │ ║ ╚════════════╪═══════════════════╪═╪══════════════════════════════════════╪═════════════════════╪═╪════════════════════════════╪═╪═══════════════════════╪═══════════════════════╪═╪═══════════════════════╪════════════╝ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╔════════════╤═══════════════════╪═╪══════════════════════════════════════╪═════════════════════╪═╪════════════════════════════╪═╪═══════════════════════╪═══════════╗ │ │ │ ║ ゲームの設定│をする / │ │ │ │ │ │ │ │ ║ │ │ │ ╟────────────┘ブラックジャックの │ │ │ │ │ │ │ │ ║ │ │ │ ║ │設定をする │ │ │ │ │ │ │ │ ║ │ │ │ ║ │──────────────────>│ │ │ │ │ │ │ │ ║ │ │ │ ║ │ │ │ │ │ │ │ │ │ ║ │ │ │ ║ │ │ │ プレイヤー数を決める(メッセージ表示) │ │ │ │ │ │ ║ │ │ │ ║ │ │ │ ────────────────────────────────────>│ │ │ │ │ │ ║ │ │ │ ║ │ │ │ │ │ │ │ │ │ ║ │ │ │ ║ │ │ │ ╔═══════════════════════╧═════════════════════╧═╗ │ │ │ ║ │ │ │ ║ │ │ │ ║ブラックジャックの設定をします。 ░║ │ │ │ ║ │ │ │ ║ │ │ │ ║プレイヤーの人数を選んでください。(1, 2, 3) ║ │ │ │ ║ │ │ │ ║ │ │ │ ╚═══════════════════════╤═════════════════════╤═╝ │ │ │ ║ │ │ │ ║ │ │ │ │ 決めた人数の NPC を new する │ │ ┌┴┐ ║ │ │ │ ║ │ │ │ ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────>│ │ ║ │ │ │ ╚════════════╪═══════════════════╪═╪══════════════════════════════════════╪═════════════════════╪═╪════════════════════════════╪═╪══════════════════════╪═╪══════════╝ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╔═══════════╤╪═══════════════════╪═╪══════════════════════════════════════╪═════════════════════╪═╪════════════════════════════╪═╪══════════════════════╪═╪══════════════════════╪═╪═══════════╗ │ ║ ゲームを開│する / │ │ │ │ │ │ │ │ │ │ │ ║ │ ╟───────────┘│ブラックジャックを │ │ │ │ │ │ │ │ │ │ │ ║ │ ║ │開始する │ │ │ │ │ │ │ │ │ │ │ ║ │ ║ │──────────────────>│ │ │ │ │ │ │ │ │ │ │ ║ │ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ │ ║ │ │ │ デッキをシャッフルする │ │ │ │ │ │ │ │ ║ │ ║ │ │ │ ──────────────────────────────────────────────────────────>│ │ │ │ │ │ │ │ ║ │ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ │ ║ │ │ │ │ │ │ デッキをシャッフルする │ │ │ │ ║ │ ║ │ │ │ │ │ │ ────────────────────────────────────────────────────────────────────────────>│ │ ║ │ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ │ ║ │ │ │ │ │ │ デッキからプレイヤーに手札2枚を配る │ │ ║ │ ║ │ │ │ │ │ │ ────────────────────────────────────────────────────────────────────────────>│ │ ║ │ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ │ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ │ ║ │ │ │ │ │ │ │ │ <─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│ │ ║ │ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ │ ║ │ │ │ │ │ │ デッキから NPC に手札2枚を配る │ │ │ ║ │ ║ │ │ │ │ │ │ ────────────────────────────────────────────────────────────────────────────>│ │ ║ │ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ │ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ │ ║ │ │ │ │ │ │ │ │ │ │ <─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │ ║ │ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ │ ║ │ │ │ │ │ │ デッキから ディーラー に手札2枚を配る │ │ ║ │ ║ │ │ │ │ │ │ ────────────────────────────────────────────────────────────────────────────>│ │ ║ │ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ │ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ │ ║ │ │ │ │ │ │ <─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │ ║ │ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ │ ║ │ │ │ ブラックジャックの開始時の │ │ │ │ │ │ │ │ │ ║ │ ║ │ │ │ メッセージを表示する │ │ │ │ │ │ │ │ │ ║ │ ║ │ │ │ ────────────────────────────────────>│ │ │ │ │ │ │ │ │ ║ │ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ │ ║ │ │ │ ╔════════════════════════════╧═════════════════════╧═╧════╗ │ │ │ │ │ │ ║ │ ║ │ │ │ ║ブラックジャックを開始します。 ░║ │ │ │ │ │ │ ║ │ ║ │ │ │ ║あなたの引いたカードはハートの7です。 ║ │ │ │ │ │ │ ║ │ ║ │ │ │ ║あなたの引いたカードはクラブの8です。 ║ │ │ │ │ │ │ ║ │ ║ │ │ │ ║ディーラーの引いたカードはダイヤのQです。 ║ │ │ │ │ │ │ ║ │ ║ │ │ │ ║ディーラーの引いた2枚目のカードはわかりません。 ║ │ │ │ │ │ │ ║ │ ║ │ │ │ ║あなたの現在の得点は15です。カードを引きますか?(Y/N) ║ │ │ │ │ │ │ ║ │ ╚════════════╪═══════════════════╪═╪═════════╚═════════════════════════════════════════════════════════╝═══════════════════════╪═╪══════════════════════╪═╪══════════════════════╪═╪═══════════╝ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╔═══════════╤═════════╪═══════════════════╪═╪══════════════════════════════════════╪═════════════════════╪═╪════════════════════════════╪═╪══════════════════════╪═╪══════════════════════╪═╪═══════════════════════╪═══════╗ ║ ゲームを進│する / │ │ │ │ │ │ │ │ │ │ │ │ │ ║ ╟───────────┘ │ │ │ │ │ │ │ │ │ │ │ │ │ ║ ║ ╔═══════════╪═══════════════════╪═╪╤═════════════════════════════════════╪═════════════════════╪═╪════════════════════════════╪═╪══════════════════════╪═╪══════════════════════╪═╪═════════════════════╗ │ ║ ║ ║ PLAYER(あなた)は HIT か STAND かを│選択する / │ │ │ │ │ │ │ │ │ ║ │ ║ ║ ╟──────────────────────────────────┘ │ │ │ │ │ │ │ │ │ ║ │ ║ ║ ║ ╔═╪════╤══════════════╪═╪══════════════════════════════════════╪═════════════════════╪═╪════════════════════════════╪═╪══════════════════════╪═╪══════════════════════╪═╪═══════════╗ ║ │ ║ ║ ║ ║ ALT │ Y (Hit) │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ╟──────┘ │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ プレイヤーは1枚カードを引く │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ─────────────────────────────────────────────────────────────────────────────────────────>│ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ 1枚カードを引く │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ ─────────────────────────────────────────────>│ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ 1枚カードを返す │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ <─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ ────┐ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ 得点を計算する │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ <───┘ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ディーラーはバーストか否かチェックする │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ──────────────────────────────────────────────────────────>│ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ バーストか否かチェックする │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ ──────────────────────────>│ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ ╔══════╤════╪═╪══════════════════════════════════════╪═════════════════════╪═╪════════════════════════════╪═╪════════════╗ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ ALT │ カードの合計値が 21 を超えていない場合 │ │ │ │ │ ║ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ ╟──────┘ │ │ │ │ │ │ │ ║ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ │ │ │ │ │ ║ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ <─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │ │ │ ║ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ │ │ │ │ │ ║ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ メッセージを表示する │ │ │ │ │ ║ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ ────────────────────────────────────>│ │ │ │ │ ║ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ │ │ │ │ │ ║ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ ╔════════════════════════════╧═════════════════════╧═╧════╗ │ │ ║ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ ║あなたの引いたカードはスペードの5です。 ░║ │ │ ║ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ ║あなたの現在の得点は20です。カードを引きますか?(Y/N) ║ │ │ ║ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ ╠═══════════╪═╪═══════════════════════════════════════════════════════════════════════════════════════════╪═╪════════════╣ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ [Burst (カードの合計値が 21 を超えていた場合)] │ │ │ │ │ ║ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ │ │ │ ステータスを │ │ ║ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ │ │ │ 「burst」に変更する │ │ ║ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ │ │ │ ──────────────────────────>│ │ ║ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ │ │ │ │ │ ║ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ │ │ │ │ │ ║ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ <─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │ │ │ ║ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ ╚═══════════╪═╪══════════════════════════════════════╪═════════════════════╪═╪════════════════════════════╪═╪════════════╝ │ │ │ │ ║ ║ │ ║ ║ ║ ╠═╪═══════════════════╪═╪══════════════════════════════════════╪═════════════════════╪═╪════════════════════════════╪═╪══════════════════════╪═╪══════════════════════╪═╪═══════════╣ ║ │ ║ ║ ║ ║ [N (Stand)] │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ メッセージを表示する │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ────────────────────────────────────>│ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ╔═══════════════════════╧═════════════════════╧═╧╗ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ║あなたの引いた2枚目のカードはダイヤの2でした。 ░║ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ║あなたの現在の得点は12です。 ║ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ╚═══════════════════════╤═════════════════════╤═╤╝ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ステータスを │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ 「stand」に変更する │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ─────────────────────────────────────────────────────────────────────────────────────────>│ │ │ │ │ │ ║ ║ │ ║ ║ ║ ╠═╪═══════════════════╪═╪══════════════════════════════════════╪═════════════════════╪═╪════════════════════════════╪═╪══════════════════════╪═╪══════════════════════╪═╪═══════════╣ ║ │ ║ ║ ║ ║ [再入力] │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ メッセージを表示する │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ────────────────────────────────────>│ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ╔══════════════════════════╧═════════════════════╧═╧══╗ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ║Y/N で入力してください。カードを引きますか?(Y/N) ░║ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ╚══════════════════════════╤═════════════════════╤═╤══╝ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ────┐ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ 再入力 │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ <───┘ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ╚═╪═══════════════════╪═╪══════════════════════════════════════╪═════════════════════╪═╪════════════════════════════╪═╪══════════════════════╪═╪══════════════════════╪═╪═══════════╝ ║ │ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ │ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ │ ║ ║ ║ │ ╔══════╤════╪═╪══════════════════════════════════════╪═════════════════════╪═╪═══╗ │ │ │ │ │ │ ║ │ ║ ║ ║ │ ║ ALT │ Burst (プレイヤーのカードの合計値が 21 を超えていた場合) │ │ ║ │ │ │ │ │ │ ║ │ ║ ║ ║ │ ╟──────┘ │ │ │ │ │ ║ │ │ │ │ │ │ ║ │ ║ ║ ║ │ ║ │ │ メッセージを表示する │ │ │ ║ │ │ │ │ │ │ ║ │ ║ ║ ║ │ ║ │ │ ────────────────────────────────────>│ │ │ ║ │ │ │ │ │ │ ║ │ ║ ║ ║ │ ║ │ │ │ │ │ ║ │ │ │ │ │ │ ║ │ ║ ║ ║ │ ║ │ │ ╔═════════════════════╧═════════════════════╧╗│ ║ │ │ │ │ │ │ ║ │ ║ ║ ║ │ ║ │ │ ║あなたの引いたカードはダイヤのJです。 ░║│ ║ │ │ │ │ │ │ ║ │ ║ ║ ║ │ ║ │ │ ║あなたの現在の得点は25です。 ║│ ║ │ │ │ │ │ │ ║ │ ║ ║ ║ │ ║ │ │ ║合計値が21を超えたので、あなたの負けです。 ║│ ║ │ │ │ │ │ │ ║ │ ║ ║ ║ │ ╚═══════════╪═╪════════════════╚════════════════════════════════════════════╝╪═══╝ │ │ │ │ │ │ ║ │ ║ ║ ╚═══════════╪═══════════════════╪═╪══════════════════════════════════════╪═════════════════════╪═╪════════════════════════════╪═╪══════════════════════╪═╪══════════════════════╪═╪═════════════════════╝ │ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ │ ║ ║ ╔═══════════╪═══════════════════╪═╪═══════════╤══════════════════════════╪═════════════════════╪═╪════════════════════════════╪═╪══════════════════════╪═╪══════════════════════╪═╪═════════════════════╗ │ ║ ║ ║ NPC(NPC1, NPC2)がいれば HIT か STAND かを選択│する(自動) / │ │ │ │ │ │ │ │ │ ║ │ ║ ║ ╟─────────────────────────────────────────────┘ │ │ │ │ │ │ │ │ │ ║ │ ║ ║ ║ ╔═╪════╤══════════════╪═╪══════════════════════════════════════╪═════════════════════╪═╪════════════════════════════╪═╪══════════════════════╪═╪══════════════════════╪═╪═══════════╗ ║ │ ║ ║ ║ ║ ALT │ Y (Hit) │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ╟──────┘ │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ NPC は1枚カードを引く │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────>│ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ 1枚カードを引く │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ ────────────────────>│ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ 1枚カードを返す │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ <─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ ────┐ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ │ 得点を計算する │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ <───┘ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ディーラーはバーストか否かチェックする │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ──────────────────────────────────────────────────────────>│ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ バーストか否かチェックする │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ ───────────────────────────────────────────────────>│ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ ╔══════╤════╪═╪══════════════════════════════════════╪═════════════════════╪═╪════════════════════════════╪═╪══════════════════════╪═╪══════════╗ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ ALT │ カードの合計値が 21 を超えていない場合 │ │ │ │ │ │ │ ║ │ │ ║ ║ │ ║ ║ ║ ║ │ ╟──────┘ │ │ │ │ │ │ │ │ │ ║ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ │ │ │ │ │ │ │ ║ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ <─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │ │ │ │ │ ║ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ │ │ │ │ │ │ │ ║ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ メッセージを表示する │ │ │ │ │ │ │ ║ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ ────────────────────────────────────>│ │ │ │ │ │ │ ║ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ │ │ │ │ │ │ │ ║ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ ╔═══════════════════════════╧═════════════════════╧═╧═══╗ │ │ │ │ ║ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ ║NPC の引いたカードはスペードの5です。 ░║ │ │ │ │ ║ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ ║NPC の現在の得点は20です。カードを引きますか?(Y/N) ║ │ │ │ │ ║ │ │ ║ ║ │ ║ ║ ║ ║ │ ╠═══════════╪═╪═══════════════════════════════════════════════════════════════════════════════════════════╪═╪══════════════════════╪═╪══════════╣ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ [Burst (カードの合計値が 21 を超えていた場合)] │ │ │ │ │ │ │ ║ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ │ │ │ ステータスを │ │ │ ║ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ │ │ │ 「burst」に変更する │ │ ║ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ │ │ │ ───────────────────────────────────────────────────>│ │ ║ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ │ │ │ │ │ │ │ ║ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ │ │ │ │ │ │ │ ║ │ │ ║ ║ │ ║ ║ ║ ║ │ ║ │ │ <─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │ │ │ │ │ ║ │ │ ║ ║ │ ║ ║ ║ ║ │ ╚═══════════╪═╪══════════════════════════════════════╪═════════════════════╪═╪════════════════════════════╪═╪══════════════════════╪═╪══════════╝ │ │ ║ ║ │ ║ ║ ║ ╠═╪═══════════════════╪═╪══════════════════════════════════════╪═════════════════════╪═╪════════════════════════════╪═╪══════════════════════╪═╪══════════════════════╪═╪═══════════╣ ║ │ ║ ║ ║ ║ [N (Stand)] │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ メッセージを表示する │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ────────────────────────────────────>│ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ╔══════════════════════╧═════════════════════╧═╗ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ║NPC の引いた2枚目のカードはダイヤの2でした。 ░║ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ║NPC の現在の得点は12です。 ║ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ╚══════════════════════╤═════════════════════╤═╝ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ステータスを │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ 「stand」に変更する │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ─────────────────────────────────────────────────────────────────────────────────────────>│ │ │ │ │ │ ║ ║ │ ║ ║ ║ ╠═╪═══════════════════╪═╪══════════════════════════════════════╪═════════════════════╪═╪════════════════════════════╪═╪══════════════════════╪═╪══════════════════════╪═╪═══════════╣ ║ │ ║ ║ ║ ║ [再入力] │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ メッセージを表示する │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ────────────────────────────────────>│ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ╔══════════════════════════╧═════════════════════╧═╧══╗ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ║Y/N で入力してください。カードを引きますか?(Y/N) ░║ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ╚══════════════════════════╤═════════════════════╤═╤══╝ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ ────┐ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ │ 再入力 │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ║ │ │ │ <───┘ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ ╚═╪═══════════════════╪═╪══════════════════════════════════════╪═════════════════════╪═╪════════════════════════════╪═╪══════════════════════╪═╪══════════════════════╪═╪═══════════╝ ║ │ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ │ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ │ ║ ║ ║ │ ╔══════╤════╪═╪══════════════════════════════════════╪═════════════════════╪═╪══╗ │ │ │ │ │ │ ║ │ ║ ║ ║ │ ║ ALT │ Burst (プNPC カードの合計値が 21 を超えていた場合) │ │ ║ │ │ │ │ │ │ ║ │ ║ ║ ║ │ ╟──────┘ │ │ │ │ │ ║ │ │ │ │ │ │ ║ │ ║ ║ ║ │ ║ │ │ メッセージを表示する │ │ │ ║ │ │ │ │ │ │ ║ │ ║ ║ ║ │ ║ │ │ ────────────────────────────────────>│ │ │ ║ │ │ │ │ │ │ ║ │ ║ ║ ║ │ ║ │ │ │ │ │ ║ │ │ │ │ │ │ ║ │ ║ ║ ║ │ ║ │ │ ╔═════════════════════╧═════════════════════╗ │ ║ │ │ │ │ │ │ ║ │ ║ ║ ║ │ ║ │ │ ║NPC の引いたカードはダイヤのJです。 ░║ │ ║ │ │ │ │ │ │ ║ │ ║ ║ ║ │ ║ │ │ ║NPC の現在の得点は25です。 ║ │ ║ │ │ │ │ │ │ ║ │ ║ ║ ║ │ ║ │ │ ║合計値が21を超えたので、 NPC の負けです。 ║ │ ║ │ │ │ │ │ │ ║ │ ║ ║ ║ │ ╚═══════════╪═╪════════════════╚═══════════════════════════════════════════╝═╪══╝ │ │ │ │ │ │ ║ │ ║ ║ ╚═══════════╪═══════════════════╪═╪══════════════════════════════════════╪═════════════════════╪═╪════════════════════════════╪═╪══════════════════════╪═╪══════════════════════╪═╪═════════════════════╝ │ ║ ╚═════════════════════╪═══════════════════╪═╪══════════════════════════════════════╪═════════════════════╪═╪════════════════════════════╪═╪══════════════════════╪═╪══════════════════════╪═╪═══════════════════════╪═══════╝ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╔══════════╤═══════════╪═══════════════════╪═╪══════════════════════════════════════╪═════════════════════╪═╪════════════════════════════╪═╪══════════════════════╪═╪══════════════════════╪═╪═══════════════════════╪═══════╗ ║ 結果を判定│する / │ │ │ │ │ │ │ │ │ │ │ │ │ ║ ╟──────────┘ │ │ │ │ │ │ │ │ │ │ │ │ │ ║ ║ ╔══════╤═════╪═══════════════════╪═╪══════════════════════════════════════╪═════════════════════╪═╪════════════════════════════╪═╪══════════════════════╪═╪══════════════════════╪═╪═════════════════════╗ │ ║ ║ ║ ALT │ Stand (カードの合計値が 21 以下) のプレイヤーが残っていた場合 │ │ │ │ │ │ │ │ │ ║ │ ║ ║ ╟──────┘ │ │ │ │ │ │ │ │ │ │ │ │ ║ │ ║ ║ ║ │ │ │ ディーラーは自分のカードの合計値が │ │ │ │ │ │ │ │ ║ │ ║ ║ ║ │ │ │ 17 以上になるまで引き続ける │ │ │ │ │ │ │ │ ║ │ ║ ║ ║ │ │ │ ──────────────────────────────────────────────────────────>│ │ │ │ │ │ │ │ ║ │ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ │ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ │ ║ ║ ║ │ │ │ ╔═══════╤════════════════════╪═════════════════════╪═╪════════════════════════════╪═╪══════════════════════╪═╪══════════════════════╪═╪═══════════╗ ║ │ ║ ║ ║ │ │ │ ║ LOOP │ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ │ │ │ ╟───────┘ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ │ │ │ ║ │ │ │ │ │1枚カードを引く │ │ │ │ ║ ║ │ ║ ║ ║ │ │ │ ║ │ │ │ ────────────────────────────────────────────────────────────────────────────>│ │ ║ ║ │ ║ ║ ║ │ │ │ ║ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ │ │ │ ║ │ │ │ │ │1枚カードを返す │ │ │ │ ║ ║ │ ║ ║ ║ │ │ │ ║ │ │ │ <─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │ ║ ║ │ ║ ║ ║ │ │ │ ║ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ │ │ │ ║ │ │ │ ────┐ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ │ │ │ ║ │ │ │ │ 得点を計算する │ │ │ │ │ │ ║ ║ │ ║ ║ ║ │ │ │ ║ │ │ │ <───┘ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ │ │ │ ║ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ │ │ │ ║ │ │ │ ────┐ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ │ │ │ ║ │ │ │ │ ステータスを変更する │ │ │ │ │ │ ║ ║ │ ║ ║ ║ │ │ │ ║ │ │ │ <───┘ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ │ │ │ ║ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ │ │ │ ║ │メッセージを表示する │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ │ │ │ ║ │<────────────────────│ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ │ │ │ ║ │ │ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ │ │ │ ║ ╔═════════════════════╧═════════════════════╗ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ │ │ │ ║ ║ディーラーの引いたカードはハートのKです。 ░║ │ │ │ │ │ │ │ ║ ║ │ ║ ║ ║ │ │ │ ╚══════╚═══════════════════════════════════════════╝═╪════════════════════════════╪═╪══════════════════════╪═╪══════════════════════╪═╪═══════════╝ ║ │ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ │ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ │ ║ ║ ║ ╔═╪════╤══════════════╪═╪══════════════════════════════════════╪═════════════════════╪═╪════════════════════════════╪═╪══════════════════════╪═╪══════════╗ │ │ ║ │ ║ ║ ║ ║ ALT │ Burst (ディーラーのカードの合計値が 21 を超えていた場合) │ │ │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ╟──────┘ │ │ │ │ │ │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ │ │ │メッセージを表示する │ │ │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ │ │ │<────────────────────│ │ │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ │ │ ╔═══════════════════════════╧═════════════════════╧═╧════╗ │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ │ │ ║ディーラーの得点は22です。 ░║ │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ │ │ ║合計値が21を超えたので、ディーラーはバーストしました。 ║ │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ │ │ ║あなたの勝ちです! ║ │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ │ │ ║(NPCの勝ちです!) ║ │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ╠═╪═══════════════════╪═╪═══════════════════════════════════════════════════════════════════════════════════════════╪═╪══════════════════════╪═╪══════════╣ │ │ ║ │ ║ ║ ║ ║ [ディーラーのカードの合計値が 21 を超えていない場合] │ │ │ │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ ────┐ │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ 勝敗を判定する │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ <───┘ │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ ────┐ │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ スコアを取得する │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ <───┘ │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ スコアを取得する │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ ──────────────────────────>│ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ ステータスを │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ win, lose, draw に変更する │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ ──────────────────────────>│ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ ステータスを │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ win, lose, draw に変更する │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ ───────────────────────────────────────────────────>│ │ ║ │ │ ║ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ ╔══════════════╧═╧═══════════════╗ │ │ │ │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ ║あなたの勝ちです! ░║ │ │ │ │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ ║(NPCの勝ちです!) ║ │ │ │ │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ║ │ ║ブラックジャックを終了します。 ║ │ │ │ │ │ │ │ ║ │ │ ║ │ ║ ║ ║ ╚═╪════╚════════════════════════════════╝══════════════════════╪═════════════════════╪═╪════════════════════════════╪═╪══════════════════════╪═╪══════════╝ │ │ ║ │ ║ ║ ║ │ └┬┘ │ └┬┘ └┬┘ └┬┘ └┬┘ ║ │ ║ ║ ║ │ ゲーム終了 │ │ │ │ │ │ ║ │ ║ ║ ║ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─│ │ │ │ │ │ ║ │ ║ ║ ╚════════════╪════════════════════╪═══════════════════════════════════════╪══════════════════════╪══════════════════════════════╪════════════════════════╪════════════════════════╪══════════════════════╝ │ ║ ╚══════════════════════╪════════════════════╪═══════════════════════════════════════╪══════════════════════╪══════════════════════════════╪════════════════════════╪════════════════════════╪════════════════════════╪═══════╝ ┌──┴─┐ ┌──┴─┐ ┌───┴───┐ ┌───┴──┐ ┌───┴──┐ ┌─┴─┐ ┌──┴─┐ ┌──┴─┐ │Main│ │Game│ │Message│ │Dealer│ │Player│ │NPC│ │Deck│ │Card│ └────┘ └────┘ └───────┘ └──────┘ └──────┘ └───┘ └────┘ └────┘