扫雷游戏之布雷 扫雷游戏

游戏界面:

初级界面是:横竖各九格,共十颗雷

游戏中如何产生地雷?

以初级扫雷作为讲解实例:

编程中采用的是二维数组来代表整个雷区,如A[9][9],横竖各九格也就是八十一格。初级是十颗雷。现在来看布雷的代码:

voidCMin eWnd::LayMines(UINTrow, UINT col) //布雷函数

{

//埋下随机种子

srand( (unsigned)time( NULL )) ; //调用该方法产生随机数的种子

UINT i, j; //定义两个UINT(由unsignedint派生)型变量

for(UINT index = 0; index//使用For循环来产生地雷

{ //其中index为已产生雷数,m_uMineNum为游戏设定雷数,初级是十颗,一般根据游戏难度来确定

//取随机数

i = rand() %m_uYNum;//地雷所在的行系数(使用产生的随机数对雷区大小进行取模运算,初级的是对9取模)

j = rand() %m_uXNum;//地雷所在的列系数(使用产生的随机数对雷区大小进行取模运算,初级的是对9取模)

if (i == row && j ==col)continue;//坐标(j,i)即为产生地雷的坐标,如果i、j等于最大行,最大列时则进行下一轮循环(这里限定最右下角的那格里不布雷,我不明白为什么,可能是游戏的规定?但我试了一下,发现在右下角的那格里面好像始终没有雷,当然是在我试玩的几次游戏中)

if(m_pMines[i][j].uAttrib!=ATTRIB_MINE)

{//如果在雷区数组m_pMines[9][9]中的元素m_pMines[i][j]的属性不是地雷,那么将其属性修改为地雷

m_pMines[i][j].uAttrib=ATTRIB_MINE;//修改属性为地雷

index++;//在已经产生的地雷数index上加一

扫雷游戏之布雷 扫雷游戏

}//循环结束,布雷数也刚好达到所设定的个数

}//通过该函数可完成布雷,实现游戏布雷的初始化

仔细看看代码想想,发现前面讲的有点问题,后来我所说的那个右下角不布雷的问题,被推翻了,才发现其实是我自己理解错了。

其实就这个也解释了,为什么对于玩家在第一次点击时,永远不会选到地雷,对于函数参数(UINTrow, UINTcol)其中的row和col是玩家点击的坐标位置,也就是该布雷函数已确定,不会在玩家第一次点击的位置布雷,所以该函数在程序中调用的位置应该是在玩家游戏开始第一次点击小格的时候调用!也就是玩家第一次点击结束,游戏布雷完成!这样可以避免玩家在第一次点击的时候就选中地雷。若在游戏中玩家选择游戏开始就已布好了地雷,这样很容易造成玩家在第一次选中地雷,从而削弱了玩家对游戏的好感度,降低了玩家对游戏的兴趣!

扫雷游戏的布雷讲解到此结束,对扫雷有兴趣的朋友可继续研究,后续问题再讨论!

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/250368.html

更多阅读

奥特曼格斗进化3游戏 网络社区的游戏进化

“网络社区+网络游戏”的模式,进一步映证了“社区扩展游戏、游戏带动社区成长”的新概念。    本刊记者 刘佳  喜欢玩SNS网站的小金最近又有了新发现,除了原先的日志、搜索、好友分享等常用功能之外,校内、海内等众多SNS网站都

风起云涌游戏怎么玩 网络游戏风起云涌

    网络游戏行业在2008年4月表现得很是活跃。4月2日,汇丰直接投资(亚洲)有限公司正式注资天津风云网络技术有限公司,此次投资是汇丰直投首次投资中国网络游戏运营商。风云网络于2007年代理了韩国MGAME公司的武侠3D游戏《英雄Ⅱ

游戏之异界疯狂兑换 网络在游戏中疯狂

    互联网发展这十年,人类思维发生的最大变化,就是“一切都可以是数码的”。  网游经营者一再号召,从八岁到八十岁,每个人都应该玩网络游戏,如果时间足够金钱充沛,最好二十四小时在线。我基本靠近八岁和八十岁之间的中点,曾经响应

简单的小游戏 简单者的游戏

    越来越多的游戏厂商意识到,必须从游戏开发和游戏操作平台两个角度来思考问题,以吸引更多的主流用户,并节约成本。    本刊记者 匡冬芳  对于游戏开发商来说,一个时时困扰他们的问题是:游戏开发费用越来越高昂了。去年12

互联网公司年会游戏 互联网的脸面游戏

    杜晨  在投资驱动型的中国互联网产业里,Alexa就是见证高速增长与混乱无序的复杂生态的一面镜子。  刚刚获得第二轮投资的占座网,最近被一些消息弄得焦头烂额。这家想成为中国版FaceBook的公司由于美国提供流量排名服务的

声明:《扫雷游戏之布雷 扫雷游戏》为网友上帝的私生子分享!如侵犯到您的合法权益请联系我们删除