扫雷游戏(xp版)vc实现

 放寒假了,到家里太无聊了,上个礼拜做了一个扫雷游戏,界面和玩法都和XP上的差不多

我的程序大致结构是,5个类:

banner_num       存储红旗的数据,就是游戏界面左上部的数字那块

total_rect       游戏主界面的数据,就是雷格子那块

FACE             就界面上那小黄脸

TIME             界面右上部的计时器

Bitmap           是以上四个类的friend class  ,上面4个类做数据上的处理(幕后

                 英雄),它访问其数据来加载相应的位图

关键问题的处理

 

用一个自定义类的数组保存格子的信息(比如9*9大小的雷区就用temp[9][9],具体信息就略了,太多了)

 

布雷是采用的取伪随机数布雷,初始化的时候还要记录每个格子是有雷还是没雷

没雷的时候还要记录相邻有几个雷

 

左键点击未按过或者没差红旗的格子,对格子进行判断,是雷就挂了,不是雷又有两种情况

           1是相邻有雷,有几个雷就加载数字几的位图(这种就是点击一个格子不会

              展开的情况)

           2是相邻没雷。这个要用递归,不仅要判断当前格子,还要判断相邻格子, 

            说不定还要判断相邻的相邻,相邻的相邻的相邻... ...(这种就是点击一个

            格子会展开的情况)

 

右键点击插红旗,一旦插了红旗这个位置就会屏蔽左键消息,要考虑到红旗的位置会影响格子的展开情况

 

 

还有些什么计算红旗个数,计时器什么的就没必要说了

 

 

我这个扫雷少了3个功能

第一就是右键没有出问号的功能,这个我故意不加的,这个问号就是没用,也没人

第二就是我这个只有一个初级难度,其他乱七八糟的难道还有什么排行榜什么的没搞了,那些都有把握做的好,就偷懒了,の。。。

 

第三个地方是我的疏忽,XP上的扫雷第一次点击永远不会触雷,但是我的会!!因为我的布雷是在点击之前就布好了,估计官方版本是在点击第一次后才开始布雷的

我得好好研究一下

 

心得:当时计划做的时候还怕自己做不下来,但后来做起来感觉也不难做,方法都可以想的到,遇到的问题自己都能独立解决,其实我觉得我这个扫雷唯一涉及到算法的就是对“左键点击可能展开”这个地方,就是那个递归,其他的都不能叫算法了,我觉得有些程序可能看起来很难,甚至貌似连边都挨不上,但是真的做起来其实也能拿的下来,关键是要动手,编程就要要动手,这是我一直注重的!

 

代码:http://yueyinggufan.download.csdn.net/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值