C/C++学习日记:C语言的随机发牌小程序(红桃、黑桃、梅花、方块)

259 篇文章 60 订阅

前言:做一个随机发牌的C语言程序,供大家学习,思考。未做任何注释,有测试时候留下的一些输出语句,一遍方便测试。

 

 

#include<stdio.h> 

#include<stdlib.h> 

#include<time.h>

int main()

{

int a[60];

int b[60];

int w = 0;

int wi,wj,wii;

int i,j,index,x=0,m;

for(i=0;i<54;i++)

a[i]=i+1;

srand((unsigned)time(0));

for(i=0;i<54;)

{

index=rand()%54;

if(a[index]!=0)

{

b[i]=a[index];

//printf("%d ",b[i]);

a[index]=0;

++i;

}

}

printf("\n说明:\n");

printf("*******************\n");

printf("**    红桃 %c    ",3);

printf("**\n");

printf("**    方块 %c    ",4);

printf("**\n");

printf("**    梅花 %c    ",5);

printf("**\n");

printf("**    黑桃 %c    ",6);

printf("**\n");

printf("**    大王 A    **\n**    小王 a    **\n");

printf("*******************\n");

printf("\n请输入打牌人数:\n");

scanf("%d",&w);

wi = 54/w;

wj = 54%w;

//printf("%d,%d",wi,wj);

for (j = 0;j < w;j++)

{

m = 0;

printf("\n\n第%d个人的牌\n",j+1);

wj --;

if (wj>=0)

wii = wi + 1;

else

wii = wi;

//红桃

printf("红桃 %c ",3);

printf(":");

for(i = j*wii;i<(j+1)*wii;i++)

{

if (b[i]<=13&&b[i]>0)

{

m++;

if (b[i]==11)

printf("J ");

else if (b[i]==12)

printf("Q ");

else if (b[i]==13)

printf("K ");

else

printf("%d ",b[i]);

}

}

//方块

printf("\n方块 %c ",4);

printf(":");

for(i = j*wii;i<(j+1)*wii;i++)

{

if (b[i]<=26&&b[i]>13)

{

m++;

 

b[i] = b[i]-13;

if (b[i]==11)

printf("J ");

else if (b[i]==12)

printf("Q ");

else if (b[i]==13)

printf("K ");

else

printf("%d ",b[i]);

}

}

//梅花

printf("\n梅花 %c ",5);

printf(":");

for(i = j*wii;i<(j+1)*wii;i++)

{

 

if (b[i]<=39&&b[i]>26)

{

m++;

b[i] = b[i]-26;

if (b[i]==11)

printf("J ");

else if (b[i]==12)

printf("Q ");

else if (b[i]==13)

printf("K ");

else

printf("%d ",b[i]);

}

}

//黑桃

printf("\n黑桃 %c ",6);

printf(":");

for(i = j*wii;i<(j+1)*wii;i++)

{

if (b[i]<=52&&b[i]>39)

{

m++;

b[i] = b[i]-39;

if (b[i]==11)

printf("J ");

else if (b[i]==12)

printf("Q ");

else if (b[i]==13)

printf("K ");

else

printf("%d ",b[i]);

}

}

//大小王

printf("\n大小王 A or a :");

for(i = j*wii;i<=(j+1)*wii;i++)

{

 

if (b[i]==53)

{

m++;

printf("A ");

}

if (b[i]==54)

{

m++;

printf("a ");

}

}

printf("\n总共:%d张牌!!!",m);

}

}

测试结果,由于屏幕显示有限,我只做2个人分牌的测试,其他的自己测试吧

PS:想查看更多资料请加入我的企鹅圈,更有免费开源项目和课程等你观看哦!

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值