定义4个长度为13的一裝数组,设计电脑发牌程序,发出52张牌,输出发牌果。大于10的牌为J,Q,K,1为‘A’,每次运行发牌结果不能相同。
一个实现,供参考:
#include <stdio.h>
#include <stdlib.h> //提供rand()函数原型
#include <time.h> //提供time()函数原型
//给每个玩家发牌
void licensing(int * play){
int i,j;
srand(time(0)+rand()); //用当前时间再加随机数做随机数种子,以便让每一次随机不一样
//给玩家发牌
for(i=0;i<13;i++){
int num = rand()%13+1; //rand()%13产生0~12的随机数, rand()%13+1产生1到13的随机数
//当产生的随机数
if(num==11){
play[i]='J';
}else if(num==12){
play[i]='Q';
}else if(num==13){
play[i]='K';
}else if(num==1){
play[i]='A';
}else if(num==10){
play[i]=10;
}else {
play[i]=num+'0';
}
// printf("num=%d,play[%d]=%c\n",num,i,play[i]);
}
}
//看牌
void watchCards(int * play){
int i;
for(i=0;i<13;i++){
if(play[i]==10){
printf("%2d ",play[i]);
}else{
printf("%2c ",play[i]);
}
}
printf("\n");
}
int main(void){
int playA[13];
int playB[13];
int playC[13];
int playD[13];
//给四个玩家发牌
licensing(playA);
licensing(playB);
licensing(playC);
licensing(playD);
printf("四个玩家的牌如下:\n");
//看牌
watchCards(playA);
watchCards(playB);
watchCards(playC);
watchCards(playD);
}