最近开始学习C语言,学习到数组的时候,做了一个发牌器,先将牌打乱,然后顺序给三个人发牌,由于才学一周,所以代码质量不好,勿喷,如果能给出优化建议请留言,万分感谢!
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
int main(){
char *cards[54]={{"黑桃2"},{"黑桃3"},{"黑桃4"},{"黑桃5"},{"黑桃6"},{"黑桃7"},{"黑桃8"},{"黑桃9"},{"黑桃10"},{"黑桃J"},{"黑桃Q"},{"黑桃K"},{"黑桃A"},
{"红桃2"},{"红桃3"},{"红桃4"},{"红桃5"},{"红桃6"},{"红桃7"},{"红桃8"},{"红桃9"},{"红桃10"},{"红桃J"},{"红桃Q"},{"红桃K"},{"红桃A"},
{"方片2"},{"方片3"},{"方片4"},{"方片5"},{"方片6"},{"方片7"},{"方片8"},{"方片9"},{"方片10"},{"方片J"},{"方片Q"},{"方片K"},{"方片A"},
{"草花2"},{"草花3"},{"草花4"},{"草花5"},{"草花6"},{"草花7"},{"草花8"},{"草花9"},{"草花10"},{"草花J"},{"草花Q"},{"草花K"},{"草花A"},
{"大王"},{"小王"}};
char *a[18];//玩家A
char *b[18];//玩家B
char *c[18];//玩家C
char *tmp;
//洗牌
int len=54;
srand((unsigned)time(0));
for(int i=len;i>1;i--){
int cur=len-i+(rand()%i);
tmp=cards[len-i];
cards[len-i]=cards[cur];
cards[cur]=tmp;
}
int ai =0;
int bi =1;
int ci =2;
for(int j=0;j<18;j++){
a[j] = cards[ai];
b[j] = cards[bi];
c[j] = cards[ci];
ai = ai + 3;
bi = bi + 3;
ci = ci + 3;
}
printf("第一个人的牌是:\n");
for(int i=0;i<18;i++){
printf("%s\t",a[i]);
}
printf("\n");
printf("第二个人的牌是:\n");
for(int i=0;i<18;i++){
printf("%s\t",b[i]);
}
printf("\n");
printf("第三个人的牌是:\n");
for(int i=0;i<18;i++){
printf("%s\t",c[i]);
}
printf("\n");
system("pause");//因为使用的IDE是vs2010,避免dos窗口一闪而过
return 0;
}