介绍
小编这次要给大家分享的是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语言如何实现洗牌发牌小程序的文章,如果觉得文章内容写得不错的话,可以把它分享出去给更多人看到。