发牌程序
『壹』 C语言,扑克牌发牌程序。要求运用结构体。多谢帮忙^o^
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
structPOKE
{
intnum;//小王-1,大王-2,A:1,J:11,Q:12,K:13
intcolor;//黑1,红2,梅3,方4,小王5,大王6
}s[54];
intmain()
{
inti,num,color;
memset(s,0,sizeof(structPOKE)*54);
srand((unsigned)time(0));
i=rand()%54;
s[i].num=-1;//小王
s[i].color=5;
while(1)
{
=rand()%54;
if(s[i].num==0)
{
s[i].num=-2;//大王
s[i].color=6;
break;
}
}
intcount=2;
while(1)
{
num=rand()%13+1;
color=rand()%4+1;
i=rand()%54;
if(s[i].num==0)
{
s[i].num=num;
s[i].color=color;
count++;
if(count>=54)
{
break;
}
}
}
printf("
顺序为:
");
for(i=0;i<54;i++)
{
switch(s[i].num)
{
case-1:putchar(1);break;
case-2:putchar(2);break;
case1:putchar('A');break;
case11:putchar('J');break;
case12:putchar('Q');break;
case13:putchar('K');break;
default:printf("%d",s[i].num);
}
switch(s[i].color)
{
case1: putchar(6);break;
case2:putchar(3);break;
case3:putchar(5);break;
case4:putchar(4);break;
default:printf("");
}
printf("");
}
return0;
}
『贰』 求C语言 发牌程序及讲解
enum paise//黑桃,红桃,梅花,方块
{
spade,hearts,club,diamonds,daxigui
};
paise Game::paicol(int dd) //确定是画的那一张牌,红桃,梅花,方块,黑桃, 并不重复不
{
if(dd<=51)
{
dd=dd/13;
if (dd==0)
{
return spade;
}
if (dd==1)
{
return hearts;
}
if (dd==2)
{
return club;
}
if (dd==3)
{
return diamonds;
}
}
return daxigui;
}
void Game::xipai()
{
for (int i=0;i<54;i++)
{
zpai[i]=i;
}
for(int ii=0;ii<500;ii++) //洗了五十次牌 ii
{
int huan=(rand()%53+1);
int tem=zpai[0];
zpai[0]=zpai[huan];
zpai[huan]=tem;
}
}
void Game::setfapai() //dizhu为是那个的地主,先发那个人的牌
{
//发到第几个人(如斗地主)
int ge[3]={};
paise bb;
for (int t=0;t<54;t++)
{
if (t<51)
{
if (zpai[t]==52||zpai[t]==53) //排除大小鬼
{
dase[t%3].da=zpai[t];
}
else
{
dase[t%3].da=zpai[t]%13;
}
bb=paicol(zpai[t]);
dase[t%3].col=bb;
ge[t%3]++;
}else
{
if (zpai[t]==52||zpai[t]==53) //排除大小鬼
{
dase[3].da=zpai[t];
}
else
{
dase[3].da=zpai[t]%13; //大小
}
bb=paicol(zpai[t]); //颜色
dase[3].col=bb;
}
}
}