摘自老师的PPT
(还没细看,先放着)
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
struct card{
char * face;
char * suit;
};
typedef struct card Card;
void fillDeck(Card * wDeck,char * wFace[],char * wSuit[]);
void shuffle(Card * wDeck);
void deal(Card * wDeck);
int main(void)
{
Card deck[52]; //声明一个结构数组,存放扑克牌
char * face[]={"Ace","Deuce","Three","Four","Five",
"Six","Seven","Eight","Nine","Ten",
"Jeck","Queen","King"};
char * suit[]={"Hearts","Diamonds","Clubs","Spades"};
srand(time(NULL));//定义并初始化指针数组
fillDeck(deck,face,suit); //初始化一副牌
shuffle(deck); //洗牌
deal(deck); //发牌
return 0;
}
void fillDeck(Card * wDeck,char * wFace[],char * wSuit[])
{
int i;
i=0;
for(suit=0;suit<=3;suit++)
for(face=0;face<=12;face++){
wDeck[i].suit=wSuit[suit];
wDeck[i].face=wFace[face];
i++;
}
}
void fillDeck(Card * wDeck,char * wFace[],char * wSuit[]) //初始化发牌
{
int i;
for(i=0;i<52;i++){
wDeck[i].face=wFace[i%13];
wDeck[i].suit=wSuit[i/13];
}
}
void shuffle(Card * wDeck) //洗牌
{
int i, j;
Card temp;
for(i=0;i<52;i++){
j=rand()%52;
temp=wDeck[i];
wDeck[i]=wDeck[j];
wDeck[j]=temp;
}
}
/*洗牌思路:每张牌都和随机抽取的另外一张牌交换一次*/
void deal(Card * wDeck)//发牌
{
int i;
for(i=0;i<52;i++){
printf("%5s of %- 8s%c",wDeck[i].face,
wDeck[i].suit, (i+1)%2?'\t':'\n');
}
}
//发牌
int a[n]与动态申请的差别