Prolog在区间内相继绑定

时间:2014-10-29 00:09:56

标签: random prolog

我正在为一个简单的游戏设计一个AI,我希望实现一个随机的运动。但这一运动必须符合游戏规则。

选择随机整数可以使用random_between/3完成,但变量绑定只发生一次。因此,如果我在绑定后检查规则,如果失败,函数将返回false

我想用between/3之类的随机整数绑定一个变量:尝试一些值,如果失败,请回来尝试另一个绑定。但between/3不是随机的。

有没有一种简单的方法来实现这个或类似的结果? (在SWI-Prolog上)

1 个答案:

答案 0 :(得分:3)

也许你可以这样写:

?- repeat, random_between(1, 10, X).
X = 6 ;
X = 2 ;
X = 9 ;
X = 5 ;
...

确保在找到满意答案后切断选择点。