C语言编写的简单发牌器

最近开始学习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;
}

 

你可能感兴趣的:(C语言)