查了两个小时,为什么啊QWQ,我的 猪国杀。

// 进入回合
void hh()
{
char nc;
ed = true;
if(fz) ed = false;
if(ed) return ;
// 现在的牌
for(int i = 1; i; i = A[i].next)
{
if(A[i].hp <= 0) continue;
if(ed || A[1].hp <= 0) return;
mp(i); mp(i);
bool K = true;
for(int j = 0; j < A[i].cnt; j ++ )
{
hhp();
if(A[i].next == i) return ;
if(A[i].hp <= 0) break;
// 此牌没有弃置
if(A[i].card[j] != 'U')
{
if(A[i].hp <= 0) break;
printf("%d %d %c\n", i, j, A[i].card[j]);
nc = A[i].card[j];
// 桃
if(nc == 'P')
{
if(A[i].hp != 4) A[i].hp++, A[i].card[j] = 'U';
continue;
}
if(nc == 'K')
{
if(!K && !A[i].zg) continue;
if(A[i].id == 'M' && kn[A[i].next] != 'L' && kn[A[i].next] != 'F') continue;
if(A[i].id == 'Z' && kn[A[i].next] != 'F') continue;
if(A[i].id == 'F' && kn[A[i].next] != 'Z' && kn[A[i].next] != 'M') continue;
A[i].card[j] = 'U';
kill(i, A[i].next);
kn[i] = A[i].id, K = false;
if(ed) return ;
continue;
}
if(nc == 'F')
{
if(A[i].id == 'F')
{
A[i].card[j] = 'U';
jd(i, 1);
kn[i] = A[i].id;
if(ed) return ;
j = 0;
continue;
}
for(int k = A[i].next; k != i; k = A[k].next)
{
if((A[i].id == 'M' && (kn[k] == 'L' || kn[k] == 'F')) || (A[i].id == 'Z' && kn[i] == 'F'))
{
A[i].card[j] = 'U';
jd(i, k);
kn[i] = A[i].id;
if(ed) return ;
j = 0;
break;
}
}
continue;
}
if(nc == 'N')
{
A[i].card[j] = 'U';
nm(i);
if(ed) return ;
j = 0;
continue;
}
if(nc == 'W')
{
A[i].card[j] = 'U';
wj(i);
if(ed) return ;
j = 0;
continue;
}
if(nc == 'Z')
{
A[i].zg = true;
A[i].card[j] = 'U';
j = 0;
continue;
}
}
if(A[i].card[j] == 'U') printf("%d %d 已使用\n", i, j);
}
}
}