谁能帮我用C语言做一个简单的蜘蛛卡牌游戏(有数据结构的知识)?

1-52已经做了底数,翻牌就不用转底数了吧?如果翻了底,肯定不会有平视的牌。....

用一系列真上假下来模拟卡片。

循环模拟翻牌满足条件卡[i]=!卡片[I];

最后,输出一个值为TRUE的数组元素。

# include & ltstdio.h & gt

# include & ltstring.h & gt

int main()

{

布尔卡[52];

memset(卡,真,52);

for (int i=2,n = 1;我& lt=52;i++,n++)

{

for(int j = n;j & lt52;j++)

{

if((j+1)%i==0)卡[j]=!卡片[j];

}

}

for(int I = 0;我& lt52;i++)

if(card[i]) printf("%d ",I+1);

返回0;

}

根据题意改进翻牌规则,即求除数的过程。如果一个数的除数是从1中去掉的,那么它会被向下翻奇数次,反之亦然。

# include & ltstdio.h & gt

int main()

{

printf(" 1 ");

for(int I = 4;我& lt=52;i++)

{

int count = 0;

for(int j = 2;j & lt= I/2;j++)

{

if(I % j = = 0)count++;

}

if(计数%2!=0) printf("%d ",I);

}

返回0;

}

可以看出,节省了循环次数,去掉了申请卡的空间,只需要一个count变量。