C语言课程设计之自动发牌文档格式.docx
《C语言课程设计之自动发牌文档格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计之自动发牌文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
intf,x;
charans;
do{
f=meun(x);
if(f==1)
{
chansheng_52_integer(M);
fenpei_52(M);
paixu_52(P1,P2,P3,P4);
zh_h1(P1,P2,P3,P4);
}
if(f==2)
{
chansheng_104_integer(N);
fenpei_104(N);
paixu_104(P1a,P2a,P3a,P4a);
zh_h2(P1a,P2a,P3a,P4a);
printf("
请输入Y或y选择继续发牌:
"
);
scanf("
%c"
&
ans);
}while(ans=='
y'
||ans=='
Y'
return0;
intchansheng_52_integer(intM[])
{
inti,j;
srand((unsigned)time(NULL));
/*产生一个从此时开始的随机数*/
for(i=0;
i<
52;
i++)
M[i]=rand()%52+1;
/*随机取数在1—52之间,并用循环输出*/
for(j=0;
j<
i;
j++)
if(M[i]==M[j])/*如果产生相同的数值,则退出*/
{
i=i-1;
break;
}
return0;
}
intfenpei_52(intM[])
intp,q;
for(p=0;
p<
13;
p++)
{for(q=0;
q<
q=q+4)
P1[p]=M[q];
p++;
{for(q=1;
P2[p]=M[q];
p++;
{for(q=2;
P3[p]=M[q];
for(p=0;
{for(q=3;
P4[p]=M[q];
intpaixu_52(intP1[],intP2[],intP3[],intP4[])
inti,j,t;
for(i=0;
12;
for(j=i+1;
if(P1[j]>
P1[i])
t=P1[j];
P1[j]=P1[i];
P1[i]=t;
}
if(P2[j]>
P2[i])
t=P2[j];
P2[j]=P2[i];
P2[i]=t;
if(P3[j]>
P3[i])
{
t=P3[j];
P3[j]=P3[i];
P3[i]=t;
if(P4[j]>
P4[i])
t=P4[j];
P4[j]=P4[i];
P4[i]=t;
intS1(intP1[])
{FILE*fp;
inta[9]={2,3,4,5,6,7,8,9,10};
charb[4]={'
J'
'
Q'
K'
A'
};
inti;
if((fp=fopen("
c.txt"
"
a+"
))==NULL)
{printf("
cannotopenfile!
\n"
exit
(1);
4个人玩1副牌按P1-P4从上到下\n"
fprintf(fp,"
S"
if(P1[i]<
10&
&
P1[i]>
0)
{
printf("
%2d"
a[(P1[i]%13)-1]);
fprintf(fp,"
if(P1[i]<
14&
9)
%2c"
b[(P1[i]+3)%13]);
}printf("
fprintf(fp,"
H"
23&
13)
a[P1[i]%13-1]);
27&
22)
D"
36&
26)
40&
35)
C"
49&
39)
53&
48)
fclose(fp);
intzh_h1(intP1[],intP2[],intP3[],intP4[])
S1(P1);
S1(P2);
S1(P3);
S1(P4);
intchansheng_104_integer(intN[])
srand((unsigned)time(NULL));
/*产生一个从此刻开始的随机数*/
104;
N[i]=rand()%104+1;
/*随机取数在1—104,并用循环输出*/
if(N[i]==N[j])/*如果产生相同的数值,则退出*/
break;
intfenpei_104(intN[])
26;
P1a[p]=N[q];
P2a[p]=N[q];
for(q=2;
P3a[p]=N[q];
p++;
}
P4a[p]=N[q];
intpaixu_104(intP1a[],intP2a[],intP3a[],intP4a[])
if(P1a[i]>
52)
P1a[i]=P1a[i]-52;
if(P2a[i]>
P2a[i]=P2a[i]-52;
if(P3a[i]>
P3a[i]=P3a[i]-52;
if(P4a[i]>
P4a[i]=P4a[i]-52;
25;
if(P1a[j]>
P1a[i])
t=P1a[j];
P1a[j]=P1a[i];
P1a[i]=t;
if(P2a[j]>
P2a[i])
t=P2a[j];
P2a[j]=P2a[i];
P2a[i]=t;
if(P3a[j]>
P3a[i])
t=P3a[j];
P3a[j]=P3a[i];
P3a[i]=t;
if(P4a[j]>
P4a[i])
t=P4a[j];
P4a[j]=P4a[i];
P4a[i]=t;
intS2(intP1a[])
a.txt"
4个人玩2副牌按P1a-P4a从上到下\n"
if((P1a[i]<
P1a[i]>
0)||(P1a[i]>
52&
P1a[i]<
62))
a[(P1a[i]%13)-1]);
if((P1a[i]<
9)||(P1a[i]>
61&
66))
b[(P1a[i]+3)%13]);
13)||(P1a[i]>
65&
75))
a[P1a[i]%13-1]);
22)||(P1a[i]>
74&
79))
26)||(P1a[i]>
78&
88))
35)||(P1a[i]>
87&
92))
39)||(P1a[i]>
91&
101))
48)||(P1a[i]>
100&
105))
}printf("
intzh_h2(intP1a[],intP2a[],intP3a[],intP4a[])
S2(P1a);
S2(P2a);
S2(P3a);
S2(P4a);
intmeun(intx)
{intf;
选择f==1副牌或者f==2副牌\n"
);
输入数字f:
\n"
如果输入Y或y则继续发牌:
scanf("
%d"
f);
returnf;