求一个关于麻将程序的思路(c语言)

求一个关于麻将程序的思路(c语言),第1张

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

可能有很多对,那么分别挑出,这个是必须的,剩下的赋值新的数组中,这是这个绝伏高新的数组有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=0i<3i++) //赋值新的数组,因为数组数组改变可以影响到调用它的函数中的数值

x[i]=c[i]

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

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

if(x[i]<x[j])

{

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=0i<10i++)

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

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

{

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=0i<13i++)

{

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

{

k=0

for(j=0j<ij++) //分两段赋值新的数组

hpai[k++]=pai[j]

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

hpai[ k++]=pai[j]

}

if(hupai(hpai))

printf("yes")

else

printf("no")

}

String []mapimg={"source/font.png","source/ks.jpg","source/1.jpg","source/2.png",

"source/3.jpg","source/youknow.jpg","fight/js.jpg","fight/js1.jpg"}

//获得工具包

Toolkit tool=Toolkit.getDefaultToolkit()

//开始图片

Image startimg

//背景图片

Image bjimg,fontimg

//画开始灶睁樱界面

public void drawstart(Graphics g){

startimg=tool.getImage(mapimg[1])

g.drawImage(startimg, 0, 0, frame.getWidth(), frame.getHeight(), frame)

fontimg=tool.getImage(mapimg[0])

g.drawImage(fontimg, 20, 30, frame)

};

这是我以前做的一个很简单的游戏中的几行代早岩码,对你的问题,你要手动选择图片,隐丛那做个文件选择器,把图片路径作为方法参数传进去就ok了

微乐家乡誉斗坦麻将分享链接, *** 作如下。

1、先在微信里进去吉祥麻将和微乐家乡麻将小程序里后。

2、直接点击有福同享,分享庆桐给好友。

3、好友点开销闹分享进去就可以了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8257272.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存