C语言实现
#include<stdio.h>
#include<stdlib.h>
struct card
{
int pips; //从1到13. 1:A,11:J,12:Q,13:K
char suit; //牌的花色。C:梅花 D:方块 H:红心 S:黑桃
};
struct card deck[] =
{ {1,'C'},{2,'C'},{3,'C'},{4,'C'},{5,'C'},{6,'C'},
{7,'C'},{8,'C'},{9,'C'},{10,'C'},{11,'C'},{12,'C'},{13,'C'},
{1,'D'},{2,'D'},{3,'D'},{4,'D'},{5,'D'},{6,'D'},
{7,'D'},{8,'D'},{9,'D'},{10,'D'},{11,'D'},{12,'D'},{13,'D'},
{1,'H'},{2,'H'},{3,'H'},{4,'H'},{5,'H'},{6,'H'},
{7,'H'},{8,'H'},{9,'H'},{10,'H'},{11,'H'},{12,'H'},{13,'H'},
{1,'S'},{2,'S'},{3,'S'},{4,'S'},{5,'S'},{6,'S'},
{7,'S'},{8,'S'},{9,'S'},{10,'S'},{11,'S'},{12,'S'},{13,'S'}
}; //初始化一副牌
void swapcard(struct card *p,struct card *q) //交换两张牌 //形参为指向结构的指针
{
struct card temp;
temp = *p; *p = *q; *q =temp; //交换两个结构变量的值
}
void shuffle( struct card desk[]) //模拟人工洗牌过程,形式参数为结构数组
{
int i,j;
for(i=0;i<52;i++)
{
j=rand