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 回答