【发布时间】:2012-12-15 02:20:35
【问题描述】:
我正在用 Prolog 编写一个扑克程序,我需要你的帮助。 我想让电脑检查一下,他还能拿到什么样的牌? 已经躺在桌子上,在他手里。为此,我需要用牌组中的牌填充剩余的牌。
示例:翻牌(3 张牌)已经在桌面上,2 张牌在玩家手中,还有 2 张牌可以抽。这意味着计算机需要检查他可以通过将他的 2 张隐藏牌和 3 张公开牌与其他 2 张尚未抽出的牌(包括其他玩家牌,因为他不认识他们,这没问题为我做)。
因此,如果他需要 2 张牌来获得顺子,那么如果池中还剩下 2 张满足条件的牌,计算机应该能够 ckeck。
既然我已经写下了手牌规则,我剩下要做的就是写一个规则,将电脑手中和桌子上的牌归还给我,再加上池中的 x 张牌。并且此规则需要能够返回这些卡片的所有可能组合(但不是一次全部)。
可能的剩余卡片列表如下所示: list = [card(Color,Value),card(Color,Value),...]
这里有没有人有关于如何做到这一点的想法?
【问题讨论】:
-
(不是你的问题的答案,因此是评论)...请注意,有两张牌来了,手里有两张未知的牌,他总能做出四边形(只要让他拿到一张在翻牌圈和你手中都没有出现过的牌的口袋对子)。他也总是可以做出顺子和同花顺。因此,基本上,正如您所写的,您几乎总是能够“满足条件”。或者,这样说:给我任何翻牌,让我选择我的手牌以及转牌和河牌,我会拿到同花顺。
标签: list prolog probability poker