0

2 つのブラウザーが開いていて、2 人のプレーヤーが 2 つの異なるブラウザーで同じゲームをプレイしている状態で接続しているとします。ゲームの状態は、セッション変数によって記録されます。ゲームが終了すると、最後のページに 3 つのボタンが表示され、再戦、別のプレイヤーとプレイ、切断します。最初の人が 3 つのボタンのいずれかを押すための先着順サービスの機会を与えるソリューションを構築するにはどうすればよいでしょうか。

プレーヤー 1 が再戦ボタンを押すと、イベント ハンドラーの下で、プレーヤー 1 のセッションでボタン 2 とボタン 3 が非表示になりますが、プレーヤー 2 のボタンも非表示にする必要があります。プレーヤー 1 がプレーヤー 2 のボタン 2 とボタン 3 を非表示にできるようにするにはどうすればよいですか?

つまり、プレーヤー 1 がボタンを押して 2 つのボタンを非表示にすると、プレーヤー 2 のボタンが強制的に非表示になります。プレイヤー 2 はまだ動きません。

4

1 に答える 1

0

データベースに新しいテーブルを作成します。「GameOverStatus」と呼びましょう。このテーブルには、次のフィールドが含まれている必要があります: GameID、FirstPlacePlayerId、SelectedButtonIndex。

すべてのゲームに固有の ID を持つことが重要です。この GameID は、現在のゲームのすべてのプレイヤーに渡される必要があります。最初のプレイヤーが「ゲーム オーバー」画面に到達したら、現在の GameID を使用して DB の GameOverStatus テーブルをクエリします。一致するものがない場合、現在のプレーヤーが最初に到着したことがわかります。GameID と PlayerID を含む GameOverStatus レコードを挿入します。プレイヤー 1 がボタン (再戦、別のプレイヤーなど) をクリックした後、データベースの GameOverStatus レコードを正しい SelectedButtonIndex で更新します。

後続のプレイヤーがこのページに到着すると、同じアクションが発生します: GameOverStatus を確認します。唯一の違いは、レコードが存在することです。レコードを読み取り、SelectedButtonIndex に基づいて、必要に応じてボタンを表示/非表示するように UI を構成します。

于 2012-10-04T04:00:16.227 に答える