0

ターンベースのゲーム関連の問題に対して、機能しているが実際には非効率的な解決策があります。

今すぐ最適化したいと思います。

短いバージョン: 2 人のプレーヤーは、ゲームのボードのほぼ同じビューを共有しますが、アクティブなプレーヤーは「プレイ」でき、非アクティブなプレーヤーはボードのみを見ることができます。

アクティブなプレーヤーには、ボードを操作するためのいくつかのボタンを含むビューが表示され、非アクティブなプレーヤーには、代わりに短い「あなたの番を待ってください」というメッセージが表示されます。これらのテンプレートは、JQuery の .load() メソッドを使用して div にロードされます。

ただし、各ターンには 0 ~ 3 の移動があり、これらの移動のすべてが両方のプレイヤーに「ライブ」で表示されます。

今のところ、毎秒リロードするJavaScriptタイマーがあります:

A)ゲームのモデルからフェッチされた「move」変数と「turn」変数のみを保持する非表示の div。(データ トラフィックに関しては > 10 バイト) 移動中に変更があった場合 ->

B)ボード ビューをリロードします。プレイヤーが 3 手未満で満足した場合 - 「パス ターン」オプションがあるか、3 手すべてを使用します ->

C) move 変数を 0 にリセットし、アクティブ プレイヤーを変更します。(上記の異なるビューの表示)

毎秒サーバーを呼び出すことは本当にひどい練習方法であり、実際に何らかの入力が必要であることを認識しています。

4

1 に答える 1

0

Websockets を確認してください。これにより、更新をクライアント ブラウザーに「プッシュ」することができます。

http://en.wikipedia.org/wiki/WebSocket

特定の django モジュールの場合:

http://pypi.python.org/pypi/django-websocket

于 2012-12-25T16:08:07.490 に答える