[英]removing a card from an array in c
因此,我编写了一个程序,将一副纸牌中的每张纸牌分配到一个阵列中。 我需要做一个随机播放功能,displayCard函数以及一个DealCard函数。 我真正感到困惑的是dealCard
函数。 我不明白交易的概念/从甲板上拿牌,不再有它到deck[]
除非我缺少任何东西,否则解决方案对我来说似乎非常简单。
对付不在甲板卡的方法之一是该卡的值设置deck
超出范围值。
deck
中项目值的有效范围是0-51。 例如,定义
// You can use any number that is not in the range 0-51
const char INVALID_CARD = -1;
当您从取出存储卡deck
,指定该卡的价值在甲板上进行INVALID_CARD
。 在检查现有卡片组时,请确保忽略其值为INVALID_CARD
的项目。
而是将卡片组视为char deck[SIZE]
,将卡片组重新定义为
char deck[SIZE];
int deck_count;
或作为结构:
typedef struct {
char deck[SIZE];
int n;
} stock;
然后创建函数来处理库存:
void stock_newdeck(stock *st); // fresh deck of 52 cards: ordered
void stock_shuffle(stock *st); // shuffle the n cards
int stock_isempty(stock *st); // any cards left?
char stock_draw(stock *st); // draw the top card
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.