3

この征服クラブ (リスクのような) ゲームを再作成しようとしています:

http://conquerclub.barrycarter.info/ONEOFF/7460216.html

つまり、各時点での各領地の所有者と、その領地に何人の軍隊がいたかを知りたいのです。私の主な情報源はゲーム ログです。ノート:

% ゲームログにはありませんが、すべての領地は 3 部隊で始まります。

% ゲーム終了時に領地の所有者を把握しており、ゲーム ログにはすべての所有者の変更が記載されているため、いつでも領地の所有者を簡単に特定できます。

% 課題は、特定の時間に領土にいる軍隊の数を見つけることです。

% ゲームログは、部隊の配備、増援、および征服に関する情報を提供します。

%ただし、ゲームログは不完全です。領土 X が領土 Y の攻撃に失敗したが、その過程で両方の領土が軍隊を失ったとします。ゲームログはこれについて言及しません。

% 特定の時点で領土内の正確な部隊数を見つけることはおそらく (一般的には) 不可能なので、範囲を探しています。

% データを一連の不等式として Mathematica に入力しようとしましたが、マニュアルで警告されているように、不等式の数に応じて計算時間が指数関数的に増加します。不等式の数がかなり少ない場合でも、ハングします。さらに、ここで Mathematica が適切なツールであるとは確信していません。

% 何かご意見は?別の例: http://conquerclub.barrycarter.info/ONEOFF/7562013.html

% http://userscripts.org/scripts/show/83035については知っていますが、\ 所有者のみを追跡し、部隊の数は追跡しません。

4

1 に答える 1

1

Prologの制約プログラミング(具体的には、 CLP / FD )を利用することができます。Prologですべてのルールをエンコードする必要がありますが、これは簡単な作業ではない可能性があります。ただし、Prologは、そのようなゲームをプレイするためのすべての可能な有効な(エンコードされたルールの観点から合法的な)方法を表示したり、可能な値の範囲を表示したりすることができます。

また、PrologのCLP / FDは非常に高速な場合もありますが、それを使用して問題を迅速に解決するのは難しい場合があります。ほとんどの無料ソルバーには多くの癖があります。

繰り返しになりますが、これは簡単な作業ではなく、以前にPrologでプログラムしたことがない場合はさらに大きくなると思います。しかし、私はこれがあなたが求める答えをあなたに与えるだろうとかなり確信しています。

于 2010-09-26T21:14:17.943 に答える