0

私はポーカー バリアント ゲームをコーディングしており、ゲームを自動化するために 1 つの大きなループを実行するために Ruby または Rails が必要です。すなわち:

  • ゲームに十分な数のプレイヤーがいるかどうかを 10 秒ごとに確認します。
  • カードがある場合は、カードを配り、対決が行われるまでの 45 秒をカウントダウンします。
  • 私のポーカー バリアントでは、3 つの連続したショーダウンがあります。したがって、プレイヤーが何が起こっているかを理解できるように、各ショーダウンはゆっくりと発生する必要があります。つまり、ハンドの最初の部分をショーダウンしてそのショーダウンの勝者を宣言するのに 5 秒、2 番目のショーダウンに 5 秒かかります。 3番目の5秒
  • 手の数秒後に一時停止します
  • 再び上からループを開始します

delayed_job と resque をざっと見てきましたが、私がやろうとしていることはかなり複雑に見えます。また、javascript/jquery ループを使用してサーバーをループに沿ってプッシュすることも検討しましたが、サーバーがループをプッシュするのではなく、テーブル上の潜在的に多数のプレーヤーのそれぞれがループをプッシュしようとしていることを考えると、それは洗練されていないようです。中心的に。

かなり単純な関数が欠けているのでしょうか? それとも、delayed_job を詳しく調べるべきでしょうか?

4

1 に答える 1

0

なんらかの種類のデーモン プロセスがほとんど必要ですが、ライブラリは必ずしも必要ではありません。

コードをモジュールのメソッドとして記述し、 を使用して呼び出すことができますrails runnersleep <seconds>このメソッドは、コードの実行と待機を含むループを実行できます。プロセスを停止する簡単な方法は、ファイルが /tmp などに存在するのを監視することですが、pid ファイルを書き込んで、後でその pid を使用してプロセスを強制終了することもできます。

于 2012-07-31T06:04:16.913 に答える