等级:新手上路 文章:2 积分:55 注册:2005-04-07 |
一个关于扑克牌游戏的算法 最近在玩一个扑克牌游戏,看着别人的名次超过我了,很郁闷,准备编写一个程序计算步骤!可惜失败了!
游戏规则:
52个扑克,没有大小Joker
牌面向上,摆成13堆,每堆4张牌(乱序),领外有两堆是空的(也就是一共有15堆,13满,2空)
每堆最多不能超过4个
移动纸牌的时候,只能将要移动的牌放在相同数字的牌上,或者空堆上,例如红桃6放在黑桃6上面,或者空堆上。
最终将所有数字一样的都放在同一堆上(4444,KKKK,9999……),一共13堆满,2堆空
我用穷举decision tree结构做的,可惜变化太多,而且还伴随着死循环问题(例如6-4-5-K-6)。
死循环我用回朔解决掉了,并且只判断100步以内的解决方法,竟然算了30多小时没有任何结果出来
不能从中间拿牌,例如最下面是4的一堆牌4567,你只能拿7放在其他的7上面,并且每堆不能超过4张牌。
AMD XP1700+ 512MB
至于程序本身我用小量级的变量测试过了,结果算法是可行的。
Q1:除了穷举decision tree,有没有其他更加优化的算法那?
Q2:这样的扑克排列组合一共有多少种可能那?
?
唉!!~~~~~我已经想了大半个月了,郁闷死了!! 我的排名已经掉到17名了 http://www.burningmonkey.com/rankings.php?game=29
还好我的准确率是最高的(纯人脑计算 T_T ) |
|
|