ゲーム 1回目 → 3回目 フローチャート

図解:各段階で A・B・C・D の画面状態と、ロビーにいる C・D の人数表示を最後(人数不足で全員ロビー)まで表示。

部屋 ゲーム中 ロビー
段階
A
B
C
D
① 1回目ゲーム中
A
ゲーム画面
参加者 4人(A,B,C,D)
B
ゲーム画面
参加者 4人(A,B,C,D)
C
ゲーム画面
参加者 4人(A,B,C,D)
D
ゲーム画面
参加者 4人(A,B,C,D)
↓ 1回目終了
② 再戦選択中
(4人在室)
A
終了オーバーレイ(YOU WIN/YOU LOSE+結果)「再戦しますか?」
参加者 4人。カウント「参加者を待っています…」→「はい」で「○さんが参加。」
B
終了オーバーレイ(YOU WIN/YOU LOSE+結果)「再戦しますか?」
参加者 4人。カウント「参加者を待っています…」
C
終了オーバーレイ(YOU WIN/YOU LOSE+結果)「再戦しますか?」
参加者 4人。カウント「参加者を待っています…」
D
終了オーバーレイ(YOU WIN/YOU LOSE+結果)「再戦しますか?」
参加者 4人。カウント「参加者を待っています…」
↓ C・D「いいえ」→ ロビー/A・B「はい」→ 再戦
③ C,D ロビー後
(2人で再戦へ)
A
終了オーバーレイ+カウントダウン
参加者 2人(A,B)「Aさん、Bさんが参加。」
B
終了オーバーレイ+カウントダウン
参加者 2人(A,B)「Aさん、Bさんが参加。」
C
ロビー(部屋一覧)
再戦選択中の部屋は一覧に表示されない(当該部屋は見えない)
D
ロビー(部屋一覧)
再戦選択中の部屋は一覧に表示されない(当該部屋は見えない)
↓ 30秒後 2回目開始
④ 2回目ゲーム中
A
ゲーム画面
参加者 2人(A,B)
B
ゲーム画面
参加者 2人(A,B)
C
ロビー(部屋一覧)
部屋 xxxx — 2/4人 ゲーム中(参加不可)
D
ロビー(部屋一覧)
部屋 xxxx — 2/4人 ゲーム中(参加不可)
↓ 2回目終了
⑤ 再戦選択
(Aはい Bいいえ)
A
終了オーバーレイ「再戦しますか?」
参加者 1人(Aのみ)「Aさんが参加。」
B
ロビー(「いいえ」で退出)
再戦選択中の部屋は一覧に表示されない(当該部屋は見えない)
C
ロビー(部屋一覧)
再戦選択中の部屋は一覧に表示されない(当該部屋は見えない)
D
ロビー(部屋一覧)
再戦選択中の部屋は一覧に表示されない(当該部屋は見えない)
↓ 30秒後 人数不足(2人未満)→ 再戦は開始されず全員ロビーへ
⑥ 人数不足で
全員ロビーへ
A
ロビー(rematch_timeout で退出)
部屋は空になる/一覧から消える
B
ロビー(部屋一覧)
部屋は空または表示なし
C
ロビー(部屋一覧)
部屋は空または一覧から消える(0/4人で非表示の可能性)
D
ロビー(部屋一覧)
部屋は空または一覧から消える(0/4人で非表示の可能性)

C・D のロビー人数表示の推移(③〜⑥)

段階 C・D がロビーで見る部屋の表示
③ C,D ロビー後再戦選択中の部屋は一覧に表示されない(list_rooms で state=rematch_pending は除外されるため、当該部屋は見えない)
④ 2回目ゲーム中2/4人 ゲーム中(参加不可)。ゲーム中の部屋は一覧に表示されるが join_room は拒否される。
⑤ 再戦選択(Aのみはい)再戦選択中の部屋は一覧に表示されない(当該部屋は見えない)
⑥ 人数不足で全員ロビーrematch_timeout で部屋が空になり一覧から消える(0人の部屋は list_rooms で返さない)