69,374
社区成员
发帖
与我相关
我的任务
分享
struct PokerCard
{
uint8_t color; // 1黑桃 2红桃 3梅花 4方块 大小王0
uint8_t num; // 1-13 为 A,2,3,4,5,6,7,8,9,10,J,Q,K;小王53 大王54
};
void Reset(PokerCard in[], PokerCard out[])
{
for (int i = 0 ; i < 54; i++)
{
if (in[i].color == 0)
{
assert(in[i].num == 53 || in[i].num == 54);
out[in[i].num - 1] = in[i];
}
else
{
assert(in[i].color >= 1 && in[i].color <= 4 && in[i].num >= 1 && in[i].num <= 13);
int index = ((in[i].color - 1) * 13 + in[i].num) - 1;
out[index] = in[i];
}
}
}
大致思路便是这样