自己写了一个四川麻将胡牌的算法,加入有两组牌让你判定是否胡牌,就只是最简单的那种胡法,非常不完善。
其中
char *as1 = "1W1W2T2D3W3W5W5W7W7W8W8W9W9W";
char *as2 = "1W1W1W2W3W4W4W5W6W7W8W9W9W9W";
主要思想是:
1)给牌分组,并排序;检查是否打缺了,只有缺了一门才能胡牌哦;
在排序的时候一定是有14张牌(否则可能就是小相公哦,呵呵……)
for (i=0; i<28; i++)
{
if(*(Cards + i) == 'D')
{
pb[b++] = *(Cards + i -1);
}
if(*(Cards + i) == 'T')
{
pt[t++] = *(Cards + i -1);
}
if(*(Cards + i) == 'W')
{
pw[w++] = *(Cards + i -1);
}
}
if(b != 0 && t !=0 && w != 0)
{
printf("\n惨了,还没打缺呢……\n");
return false;
}
sort(pb,b);
sort(pt,t);
sort(pw,w);
<