0

この種の拡散質問がここに適しているかどうかは本当にわかりませんが、とにかくやってみます。

私はDjangoでターンベースの(Yatzee)ゲームを構築しています。ここでは、ユーザー/プレーヤー用のラリーシンプルモデルと、各ユーザースコアボード用のもう少し複雑なモデルがあります。

新しいゲームは、基本的にスコアごとに1つずつ、いくつかのintフィールドとbooleanフィールドで構成される新しいスコアボードを生成します(たとえば、2ペアを取得した場合、スコアと'割り当て済み'として設定するフィールド)

問題は、このアプローチでは、各ターンの後にスコアをdb(sqlite)に保存することで、ゲームを「一時停止」して後で続行できるようになるということです。

どこから探し始めるかを実際に知らずに、今私が調べ始めたいのは、2つ以上のプレイでゲームをWeb上で「ホスト」する方法です。それらがすべて同じコンピューターに座っている場合、JavaScriptを使用してプレーヤー/スコアボードの数を制御できるため、問題はありません。

これを達成するために、私は「togheter」に属するスコアボードをセッションに割り当てるという観点から考えていますが、これをどのように、どこで行うかは、現時点では私の範囲外です。

Djangoミドルウェアについて少し読んだことがありますが、モデルレイヤーから解決しようとするよりも、それがより良い方法であるかどうかを実際に理解することはできません(これは信じられないほど難しいでしょう..?)。

4

2 に答える 2

1

これを実現する 1 つの方法は、プレーヤーのアクティビティをバックエンドでポーリングする JavaScript フレームワークを構築することです。追跡するプレーヤーのアクティビティは多数あります。

  1. 新しいゲーム
  2. プレイヤーがゲームを終了 / タイムアウト
  3. リモートプレイヤーがサイコロを振る順番
  4. ローカル プレイヤーがサイコロを振る順番

サーバーをポーリングして更新を確認したり、ローカル プレーヤーのアクティビティを投稿したりするタイマーを備えた AJAX 関数を使用することをお勧めします。

JavaScript フレームワークと言うときは、クライアント側で自動ポーリングと更新を処理する方法を指しています。

ゲームのルールやサイコロを振るなど、サーバー上で行わなければならないすべての処理を JavaScript に依存することはできないことに注意してください。JavaScript は、プレーヤーの GUI のみを更新して、現在のステータスを表示する必要があります。

したがって、新しいゲームの開始、リモート アクティビティの確認、サイコロのロール、プレイヤー オプションの保存 (プレイヤーが 3* 6 をペアとして保存することを選択したなど) などのアクションの AJAX 呼び出しが必要になります。

于 2012-06-01T09:14:06.657 に答える
0

ミドルウェアがこれにどのような関係があるのか​​ わかりません。

最も簡単な方法は、Player1 と Player2 の auth.User モデルを指すゲーム モデルからの外部キーを持つことです。

于 2012-06-01T08:23:13.853 に答える