这更像是一个数学问题,但由于我正在尝试为此创建代码,我会在这里问。
我有扑克牌,每个人手上都有14张牌。这是我正在尝试的游戏this。
我想为计算机制作一个评级系统,决定从牌组中拿一张牌还是继续用手更好。
相同的卡片类型可以制作像黑桃3-4-5-6-7这样的行,不同的卡片类型可以作为黑桃3 - 3 - 3 - 钻石3 - 俱乐部3行。唯一重要的规则是那些行具有要超过2张牌,所以黑桃3-4不好
我希望计算机在卡片混合时按照最佳组合对卡片进行排列。
我有2个解决方案:
对14张牌进行排列并根据牌的邻居给出评分,因此有一个普遍的观点。这有大约80万亿的可能性,每个都需要评级,这需要花费大量的时间,我想要一个可以在1-3秒内计算的解决方案。
选择每张卡并搜索可能的行,如果有超过3个成员的行,则从列表中减去并尝试其他行。尝试所有卡和行可能性给我一个很好的数量。但是这种方法的缺点是太复杂并且有许多额外的检查,例如卡是否更适合作为相同类型的行或不同类型的行。
有没有人想出这样的问题或有想法给我正确的方向?