Prolog在间隔内连续绑定



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

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

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

有没有一种简单的方法可以达到这个或类似的结果?(在SWI Prolog上)

也许你可以写这样的东西:

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

只要确保在你找到一个令人满意的答案后,你就切中了选择点。

最新更新