福建十三水扑克牌。有很多种组合牌型,比如顺子、同花、对子、三条等等。
我对应把找出单个牌型的算法分别写了出来:
bool shunzi = findShunzi(out List<List<int>> result);
类似这样的函数,写了有7、8中。每种out出来的,是当前13张所有牌,组合出对应的牌型的所有可能。
每种牌型有不同的分值。比如顺子4分,同花3分,对子2分,三条1分…
顺子是5张,同花是5张,对子2张,三条3张…
最终,要摆出5张+5张+3张的结果。
其中第一组5张的分值>= 第二组5张的分值 >= 第三组3张
请教大佬,我的问题是:
1、是否应该修改findShunzi这种函数为异步的,这样是不是多线程,在一个方法体里计算所有组合可能会更快些?
方法体:
findA…
findB…
findC…
2、怎样设计最终组合算法,使得13张牌穷尽所有组合方式,能找出最优解。也就是5+5+3的最终结果,分值最高?