C语言能做麻将程序吗,求一个关于麻将程序的思路(c语言)

满意答案

02ae427d08e371d7e90d5b995e828d6d.png

ling0926520

推荐于 2017.11.26

组成胡牌的规则只有两种,三个相同或者三个排成顺序(也就是相邻)

可能有很多对,那么分别挑出,这个是必须的,剩下的赋值新的数组中,这是这个新的数组有12个数据

如定义

int guize1(int *b) //这里b有三个数据,三个数相同

{

if(b[0]==b[1]&&b[1]==b[2]&&b[0]==b[1])

return 1;

return 0; //这里加不加else都可以

}

int guize2(int *c) //这里c有三个数据,三个数是顺序的

{

int x[3];

int i,j,t;

for(i=0;i<3;i++) //赋值新的数组,因为数组数组改变可以影响到调用它的函数中的数值

x[i]=c[i];

for(i=0;i<3;i++) //x数值排序,随便选一个,我的可能不对,呵呵

for(j=i+1;j<3;j++)

if(x[i]

{

t=x[i];

x[i]=x[j];

x[j]=t;

}

if(x[0]=x[1]-1&&x[1]==x[2]-1) //顺序的话返回1

return 1;

return 0;

}

int huipai(int *a) //这里a数组有12个数据

{

//这里就需要枚举了,没别的办法

int i,j,k;

int y[3];

for(i=0;i<10;i++)

for(j=i+1;j<11;j++)

for(k=j+1;k<12;k++) //这三个循环就是所有的情况吧,你想想

{

y[0]=a[i];

y[1]=a[j];

y[2]=a[k];

if(guize1(y)||guize2(y)) //判断是否构成关系,直接调用子函数即可

return 1;

}

}

主函数中调用子函数的程序

int pai[14] ; //这里放14个数据,初始化自己搞定

int hpai[12];

//排序14个数据自己搞定

int i,j,k;

for(i=0;i<13;i++)

{

if(pai[i]==pai[i+1]) //如果有对

{

k=0;

for(j=0;j

hpai[k++]=pai[j];

for(j=i+2;j<14;j++)

hpai[ k++]=pai[j];

}

if(hupai(hpai))

printf("yes");

else

printf("no");

}

00分享举报

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值