我正在为一个简单的游戏设计一个AI,我希望实现一个随机的运动。但这一运动必须符合游戏规则。
选择随机整数可以使用random_between/3
完成,但变量绑定只发生一次。因此,如果我在绑定后检查规则,如果失败,函数将返回false
。
我想用between/3
之类的随机整数绑定一个变量:尝试一些值,如果失败,请回来尝试另一个绑定。但between/3
不是随机的。
有没有一种简单的方法来实现这个或类似的结果? (在SWI-Prolog上)
答案 0 :(得分:3)
也许你可以这样写:
?- repeat, random_between(1, 10, X).
X = 6 ;
X = 2 ;
X = 9 ;
X = 5 ;
...
确保在找到满意答案后切断选择点。