繁体   English   中英

从C中的阵列中移除卡

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM