C语言写的“斗牛”游戏原代码

/*建立二人斗牛游戏的程序*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
/*牌的数据结构*/
typedef struct
{
char face[4];
int num;
}FACE;
/*建立返回牌结果的数据结构*/
typedef struct
{
int result; //点数
int max; //最大的那张牌
int number; //如果多张牌时返回
int numberzhi;
}PAIRESULT;
/*建立总共纸牌初始函数*/
void inition(FACE zong[])
{
int i;
for(i=1;i<=4;i++)
{
strcpy(zong[i].face,"3");
zong[i].num=0;
}
for(i=5;i<=8;i++)
{
strcpy(zong[i].face,"4");
zong[i].num=1;
}
for(i=9;i<=12;i++)
{
strcpy(zong[i].face,"5");
zong[i].num=2;
}
for(i=13;i<=16;i++)
{
strcpy(zong[i].face,"6");
zong[i].num=3;
}
for(i=17;i<=20;i++)
{
strcpy(zong[i].face,"7");
zong[i].num=4;
}
for(i=21;i<=24;i++)
{
strcpy(zong[i].face,"8");
zong[i].num=5;
}
for(i=25;i<=28;i++)
{
strcpy(zong[i].face,"9");
zong[i].num=6;
}
for(i=29;i<=32;i++)
{
strcpy(zong[i].face,"10");
zong[i].num=7;
}
for(i=33;i<=36;i++)
{
strcpy(zong[i].face,"J");
zong[i].num=8;
}
for(i=37;i<=40;i++)
{
strcpy(zong[i].face,"Q");
zong[i].num=9;
}
for(i=41;i<=44;i++)
{
strcpy(zong[i].face,"K");
zong[i].num=10;
}
for(i=45;i<=48;i++)
{
strcpy(zong[i].face,"A");
zong[i].num=11;
}
for(i=49;i<=52;i++)
{
strcpy(zong[i].face,"2");
zong[i].num=12;
}
}
/*建立输出函数*/
void output(int n,FACE zong[],int k)
{
int i;
printf("/n");
if(k==2)
printf("这是玩家的牌/n");
else
printf("这是庄家的牌/n");
for(i=1;i<=n;i++)
printf("%s ",zong[i].face);
printf("/n");
}
/*建立洗牌函数*/
void xipai(FACE zong[])
{
int i,j;
long k;
FACE temp;
srand(time(NULL));
for(k=1;k<1000;k++)
{
i=1+rand()%52;
j=1+rand()%52;
temp=zong[i];
zong[i]=zong[j];
zong[j]=temp;
}
}

/*建立发牌函数*/
void fapai(FACE zong[],FACE player1[],FACE player2[])
{
int i=1,c1=1,c2=1;
for(i=1;i<=10;)
{
player1[c1++]=zong[i++];
player2[c2++]=zong[i++];
}
}
/*建立牌的排序函数*/
void paisort(FACE player[])
{
FACE temp;
int i,j;
for(i=0;i<4;i++)
for(j=1;j<=4-i;j++)
if(player[j].num>player[j+1].num)
{
temp=player[j];
player[j]=player[j+1];
player[j+1]=temp;
}
}
/*建立只有三张非纸牌的函数*/
int san(int a2[])
{
if((a2[0]+a2[1]+a2[2])%10==0)//三张牌和为十的倍数时
return10;
else //没有牛时
{
/*以下是有两张牌和为10时*/
if(a2[0]+a2[1]==10) return a2[2

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值