Problem C Online Quiz System

Problem C
Online Quiz System
~Quiz Millionaire Attack~
講評担当 : 野田
概要
• オンラインクイズゲームのネットワーク通信部
分のシミュレーションを行う
• サーバーと各クライアントの受信データ量と
送信データ量をを出力する
ゲーム内容
• プレイヤーは制限時間20秒以内に各問題に
答える(厳密には違う)
• プレイヤーには
– 回答するまでは誰が回答したかが見える
– 回答した後は誰がどんな回答をしたかが見える
システム仕様(1)
• サーバーはクライアントに各問題開始時に「問題開始同期パ
ケット」を送信する
• サーバーは1000ms毎にポーリングを行う
• ポーリング中にクライアントからパケットを受信した場合、各
クライアントに対して他者の回答を送信する
– 回答を送信していないクライアントには「他者の回答パケットA」を使
用する
– 回答を送信したクライアントには「他者の回答パケットB」を使用する
– クライアント自身の回答は送信しない
– パケットに他者の回答が含まれないときはパケット自体を送信しない
システム仕様(2)
• サーバーはポーリング開始後20000ms経過
後、他者の回答が届いていれば「他者の回
答パケット」を送信し、「問題終了同期パケッ
ト」を送信する
• 以上を問題数だけ繰り返すs
システム仕様(3)
• パケット仕様
問題開始同期パケット
パケットヘッダ
他者の回答パケットA
3
回答パケット
パケットヘッダ
3
プレイヤーID
1
回答データサイズ(=L)
1
回答データ
L
問題終了同期パケット
パケットヘッダ
3
パケットヘッダ
3
回答の数(=N)
(以下N子繰り返し)
1
結果
1
プレイヤーID
1
他者の回答パケットB
パケットヘッダ
3
回答の数(=N)
(以下N個繰り返し)
1
プレイヤーID
1
回答データサイズ(=Li) 1
回答データ
Li
解法
• 根性
• ド根性
»↑英文読みの話↑
• やり方は自由
–シミュレーションなので書い
てある通りに書けばよい
注意点
• 通信遅延はサーバー・クライアントの双方向
で発生する
• ポーリングの処理を正確に行う
– 1000msの倍数の時間でサーバーに到着したパ
ケットは、次のポーリングで処理される
結果
• 初Accepted(予想)
– 100分
• 初Accepted(実際)
– 174分(Makegumi)
• 結果
– 5/7 全国正解率71%
出典
• オリジナル
• 元ネタ
– 業務用ゲーム『クイズマジックアカデミー』(コナミ)
• http://www.konami.jp/am/qma/
終わりに
• 英文の長さを恐れてはいけない
» と思う
• ネットワーク問題を恐れてはいけない
» と思う
• ネタに釣られてはいけない
» と思う
• 以上