我有一个纸牌游戏任务,我很困惑如何通过参考呼叫从甲板上正确处理用户和计算机5卡。以下是该功能的要求:此功能从卡座中移除顶部卡并将其返回到调用功能,同时将卡的其余部分向上移动一张卡。请注意,必须减少卡组的大小以反映一张卡的丢失(这应该使用“参考呼叫”来完成。)
这是我目前的功能代码,但我认为没错。请不要过于技术性,我是一个菜鸟。感谢。
int popCard(int *size, int deck[])
{
int user[5];
int comp[5];
int i,j;
for(j=0; j<=5; j++)
{
for(i=51; i>=47; i--)
{
user[j]=i;
}
for(i=46; i>=42; i--)
{
comp[j]=i;
}
}
}
答案 0 :(得分:0)
C中的函数可以通过三种方式改变外部世界:
所以,让我们说你有一个&#34;套牌&#34;某种对象,以及&#34;手&#34;某种对象,你想要一张卡片。你可以编写一个函数,该函数既可以指向一个套牌也可以一只手,并更新两者:
void deal(Deck *deck, Hand *hand);
但可能更好的设计是一个甲板功能和一个手功能(假设卡片是int
s,它们应该是。)
int dealfrom(Deck *deck);
void dealTo(Hand *hand, int card);
然后只是
dealTo(h, dealFrom(d));
Deck
和Hand
应该是具有卡片阵列和当前大小的结构(可能是容量,以及其他需要的东西)。