没有合适的资源?快使用搜索试试~ 我知道了~
C语言实现随机发扑克牌
17 下载量 158 浏览量
2020-12-20
20:14:57
上传
评论 1
收藏 87KB PDF 举报
温馨提示
试读
3页
本文实例为大家分享了C语言实现随机发扑克牌的具体代码,供大家参考,具体内容如下 算法如下: 1、将1-10作为方块、2-20作为梅花,3-30作为红桃,4-40作为黑桃,JQK以及大小王分别排序共54张存放在一维数组中。 3、3个人用一个二维数组来存放三人的牌。 2、主要分为打散(乱序),分配,显示三个操作 打散即洗牌:通过rand以及srand函数来获得,为了避免相同的序列,使用标准时间来作为序列种子。 void shuffle(int *cards, int lenth) { int temp, i, index; time_t t; srand((unsigned int)(&
资源详情
资源评论
资源推荐
C语言实现随机发扑克牌语言实现随机发扑克牌
本文实例为大家分享了C语言实现随机发扑克牌的具体代码,供大家参考,具体内容如下
算法如下:
1、将1-10作为方块、2-20作为梅花,3-30作为红桃,4-40作为黑桃,JQK以及大小王分别排序共54张存放在一维数组中。
3、3个人用一个二维数组来存放三人的牌。
2、主要分为打散(乱序),分配,显示三个操作
打散即洗牌:通过rand以及srand函数来获得,为了避免相同的序列,使用标准时间来作为序列种子。
void shuffle(int *cards, int lenth)
{
int temp, i, index;
time_t t;
srand((unsigned int)(&t));
for (i = 0; i < lenth - 1; i++) //保证每一次交换都是和剩下的数进行交换
{
index = rand() % (lenth - i) + i;
if (index != i)
{
temp = cards[i];
cards[i] = cards[index];
cards[index] = temp;
}
}
}
分配:分配:将乱序的卡组分别依次排入一个二维数组中
void deal(int(*everycards)[18], int* cards)
{
int i, j;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 18; j++)
{
everycards[i][j] = cards[i * 18 + j];
}
}
}
显示:显示:数字卡用迭代的方法显示,而JQK则用switch方法实现
void display(int(*everycards)[18], char *name1, char *name2, char *name3)
{
int i, j;
//方块、梅花、红桃、黑桃
putchar('');
printf("分配卡牌如下:");
for (i = 0; i < 3; i++)
{
switch (i)
{
case 0: printf("%s手上的牌是: ", name1); break;
case 1: printf("%s手上的牌是: ", name2); break;
case 2: printf("%s手上的牌是: ", name3); break;
}
for (j = 0; j < 18; j++)
{
if (everycards[i][j] >= 1 && everycards[i][j] <= 10)
{
printf("方%d ", everycards[i][j]);
}
else if (everycards[i][j] >= 11 && everycards[i][j] <= 20)
{
weixin_38690402
- 粉丝: 5
- 资源: 1008
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0