C语言洗牌发牌程序

请问谁会用C语言编写洗牌发牌程序,要运用到枚举

慕粉3160742
浏览 3671回答 2
2回答

望远

#include <stdio.h> #include<stdlib.h> #include<time.h> typedef struct{ char *color; char *number; }Card; void shuffle(Card cards[][13],int n,int m) { srand(time(0)); Card card[52]; Card tempCard; int i,j; for(i=0;i<n;i++) { for(j=0;j<m;j++) { card[i*13+j]=cards[i][j]; } } for(i=0;i<52;i++) { int temp=rand()%(52-i)+i; tempCard=card[i]; card[i]=card[temp]; card[temp]=tempCard; } for(i=0;i<4;i++) { for(j=0;j<13;j++) { cards[i][j]=card[i*13+j]; } } } void main() { char colors[4][10]={"红心","梅花","方块","黑桃"};  char number[][4]={"A","2","3","4","5","6","7","8","9","10","J","Q","K"}; Card cards[4][13];//共52张牌(不考虑大小王) int i,j; for(i=0;i<=3;i++) { for(j=0;j<=12;j++) { cards[i][j].color=colors[i]; cards[i][j].number=number[j]; } } printf("洗牌前:\n"); for(i=0;i<=3;i++) { for(j=0;j<=12;j++) { printf("%s%s ",cards[i][j].color,cards[i][j].number); } printf("\n"); } shuffle(cards,4,13); printf("洗牌后:\n"); for(i=0;i<=3;i++) { for(j=0;j<=12;j++) { printf("%s%s ",cards[i][j].color,cards[i][j].number); } printf("\n"); } }ps:我这里有一个用数组做的,希望对你有帮助。
打开App,查看更多内容
随时随地看视频慕课网APP