C语言如何实现洗牌发牌小程序

  介绍

小编这次要给大家分享的是C语言如何实现洗牌发牌小程序,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。

构建一副扑克牌,并实现洗牌发牌。

代码

 # include & lt; stdio.h>
  # include & lt; time.h>
  # include & lt; stdlib.h>
  
  #定义NUM 10000//洗牌混乱度
  
  字符颜色[7][7]={“空白”、“红桃”、“黑桃“,“草花“,“方片“,“小王”、“大王“};//1:红桃2:黑桃3:草花4:方片5:小王6:大王
  char[]号={“0 a234567890jqk"};//0:不存内容1:一个2:2三3 4:4 5:5 6:6 7:7八8 9:9 10:10 11:J 12:问13:K//构建扑克
  struct卡{
  无符号整型数;
  unsigned int颜色;
  };
  
  unsigned int NUM_card=53个;//剩余未发的牌数(发牌时用的变量)
  
  struct卡牌[54];//创建保存一副牌的结构体//构建一副牌(有序)
  空白creat_pair_card ()
  {
  int num=1;
  int坳=1;
  int i=0;
  (num=1; num<=15; num + +)
  {//生成大小王
  如果(num>=14)
  {
  卡[我].number=num;
  卡[我].color=+ +上校;
  我+ +;
  }
  其他的
  {//生成普通牌
  (col=1; col<=4;坳+ +)
  {
  卡[我].number=num;
  卡[我].color=上校;
  我+ +;
  }
  }
  }
  }//显示一副牌
  空白print_card ()
  {
  int我;
  int num上校;//点数与花色对应数组下标
  (我=0;i<54;我+ +)
  {
  坳=[我].color卡片;
  num=[我].number卡片;
  如果(col>=5)
  {
  printf (“% s \ t",颜色(col));
  }
  其他的
  {
  如果(num==10)
  {
  printf (“% s:“颜色(col));
  printf (“10 \ t");
  }
  其他的
  {
  printf (“% s:“颜色(col));
  printf (“% c \ t",号码(num));
  }
  }
  }
  printf (“\ n");
  }//洗牌
  空白wash_card ()
  {
  int我;
  int - ch2 - ch3;
  将srand ((unsigned)时间(NULL));
  (i=0; i< NUM;我+ +)//循环次数越大越乱
  {
  
  
  ch2=100兰特()%;//2147483647取最后两位0 - 99
  甲基=100兰特()%;
  
  
  如果(ch2> 53)
  {
  ch2=100 - ch2;//随机数大于53则减小
  }
  
  如果(ch3> 53)
  {
  甲基=100 - ch3;
  }
  
  如果(ch2==ch3)
  {
  继续;
  }//两个随机牌交换
  struct卡tmp=卡(ch2);
  卡(ch2)=卡(ch3);
  卡(ch3)=tmp;
  }
  }//发牌
  空白send_card (struct卡手[],int num)
  {
  如果(NUM_card=5)
  {
  printf (“% s”,颜色(col));
  }
  其他的
  {
  如果(点==10)
  {
  printf (“% s:“颜色(col));
  printf (“10“);
  }
  其他的
  {
  printf (“% s:“颜色(col));
  printf (“% c“,数量[点]);
  }
  }
  }
  printf (“\ n");
  }
  
  
  int主要(空白)
  {
  
  creat_pair_card ();//创建一副牌有序
  wash_card();//洗牌
  print_card();//打印
  
  struct卡hand1 [17];//创建两个结构体保存手牌17张
  struct卡hand2 [17];
  send_card (hand1, 17);//发牌
  send_card (hand2, 17);
  printf(“手牌:“);
  print_hand_card (hand1, 17);
  printf (“\ n");
  printf(“手牌B:“);
  print_hand_card (hand2, 17);
  printf (“\ n");
  }

看完这篇关于C语言如何实现洗牌发牌小程序的文章,如果觉得文章内容写得不错的话,可以把它分享出去给更多人看到。

C语言如何实现洗牌发牌小程序