确定下一个状态谓词序言
我有一个包含 5 个元素、2 个黑色元素、2 个白色元素和一个空点(“v”)的列表。 我有一个由 [w, w, v, b, b] 表示的状态,其中有白人玩家和黑人玩家。
每个玩家轮流玩,并且可以向前移动他的一个元素。他无法将其向后移动。
我想写一个谓词来确定玩家 P 玩后所有可能的状态。
例如,我们将有:
next_state([w, w, v, b, b], W, L).
L = [v, w, w, b, b];
L = [w, v, w, b, b];
false.
但我不知道如何进行。 谢谢
I have a list with 5 elements, 2 black elements, 2 white, and an empty spot ("v").
I have a state represented by [w, w, v, b, b] with White player and Black player.
Each player plays turn by turn, and can move one of his element forward. He can't move it backward.
I want to write a predicate that determines all possible states after player P played.
For exemple, we'll have:
next_state([w, w, v, b, b], W, L).
L = [v, w, w, b, b];
L = [w, v, w, b, b];
false.
But I don't know how to procede.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果跳过同名的件规则仅限于向前移动2个位置,那么这应该足够:
结果:Swi-Promog:
If the skipping-over-same-player's-piece rule is limited to moving a maximum of 2 positions forward, then this should suffice:
Result in swi-prolog: