温州本地网站平台国外域名注册哪个网站好
web/
2025/10/2 8:09:11/
文章来源:
温州本地网站平台,国外域名注册哪个网站好,wordpress php 结构,展示型商城订单网站建设虽然单花色胡牌算法面试时写出来了#xff0c;但是完整的胡牌算法却没有写#xff0c;既然遇到了#xff0c;秉着不抛弃不放弃的精神#xff0c;当然不能原谅懒惰的自己了。下面这篇为一个完整的胡牌算法。胡牌规则除了以下几点#xff0c;其余与单花色胡牌规则一致#…虽然单花色胡牌算法面试时写出来了但是完整的胡牌算法却没有写既然遇到了秉着不抛弃不放弃的精神当然不能原谅懒惰的自己了。下面这篇为一个完整的胡牌算法。胡牌规则除了以下几点其余与单花色胡牌规则一致1.东南西北中发只能三个相同的牌才能进行组合不允许与不同的牌进行组合2.牌的花色可能有多种分析这里由于涉及到多花色的情况我们可以将它当作是单花色的一个扩展。即只要从牌中取出一对将牌后将剩余的牌按照花色分别判断是否符合规则即可。其中judgeLeft函数为单花色中使用的函数。代码如下enum eHuaseType{EN_WANZI 0, // 万字EN_TIAOZI, // 条字EN_BINGZI, // 饼字EN_FENG, // 风EN_HUASE_COUNT // 花色的种类数};#define MAX_LENGTH_OF_HUASE (10)// 多申请一些内存方便取值// 假定牌对应的数字如下1~9为万字11~19为条字21~29为饼字31~37为东南西北中发白bool judgeLeftHuase(int *arr, int len, eHuaseType etype){ // 如果是万、条、饼则按照单花色判断if (etype { return judgeLeft(arr, len);} // 如果是东南西北中发白则判断是否是3个相同的牌for (int i 0; i { if (arr[i] 0){ continue;} if (arr[i] ! 3){ return false;}} return true;}bool completeHupai(int *arr, int len){ if (len { return false;// 牌的长度小于5或者去除将牌后长度不是三的倍数} int atrans[EN_HUASE_COUNT][MAX_LENGTH_OF_HUASE]; int atmps[EN_HUASE_COUNT][MAX_LENGTH_OF_HUASE]; memset(atrans, 0, sizeof(atrans));eHuaseType eType EN_HUASE_COUNT; for (int i 0;i {eType (eHuaseType)(arr[i] / MAX_LENGTH_OF_HUASE); // 取牌的类型atrans[eType][arr[i] - 1 - eType *10]; // 将出现的牌进行次数累计} // 遍历 atrans 进行取将for (int i 0;i { memcpy(atmps, atrans, sizeof(atrans)); if (atmps[i/ MAX_LENGTH_OF_HUASE][i%MAX_LENGTH_OF_HUASE] { continue;}atmps[i / MAX_LENGTH_OF_HUASE][i % 10] - 2; // 取将完成判断剩余的牌是否符合规则for (int j 0;j { // 如果不符合规则则重新取将if (!judgeLeftHuase(atmps[j],MAX_LENGTH_OF_HUASE,j)){ break;} // 如果所有的花色都判断OK则这副牌可以胡if (j EN_HUASE_COUNT - 1){ return true;}}} return false;}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/85516.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!