每个牌都有一个用于排序的值,(点数<<8)+(底色<<4) + (花色),所谓的属性优先,实际就是优先级越高的属性,在排序值中位于越高的位上。
然后对这个值进行普通的排序就可以了。用快速排序即可。
比如点数:3 > 4 > 5 > 6 > 7 > 8 > 9 > 10 > J > Q > K > A > 2 > 小王 > 大王
规定一个字符串数组:
char *s[]={"2","A",...,"4","3"};
然后设置点数值=0x0到0xE的某个值,那么花色字符串表示就是s[点数值];
例如点数值是0xA; 底色是0x1, 花色是0x2,点数15个,可以4位为一种属性,这样一个值可以容纳更多的属性。
则用于排序的值就是0x0000 0A12;
[[it] 本帖最后由 hoodlum1980 于 2008-3-30 02:11 编辑 [/it]]