扫雷程序思想
来源:互联网 发布:量化投资 python pdf 编辑:程序博客网 时间:2024/04/27 20:38
扫雷程序思想讲解在我大二的时候就编写了一个扫雷程序,现在也有很多源程序下载,我不知道他们的算法是怎么样的,但我想我的算法应是最清晰和简单的。下面就来讲解我的扫雷程序思想。 首先我们在雷区上随机地放上雷,没有雷的地方被点击后就会显示一个数字表示它周围有几个雷,这是怎么实现的呢?我们可以把整个雷区看成一个二维数组a[i,j],如雷区:
11 12 13 14 15 16 17 18
21 22 23 24 25 26 27 28
31 32 33 34 35 36 37 38
41 42 43 44 45 46 47 48
51 52 53 54 55 56 57 58
我要知道a[34]周围有几个雷,就只有去检测
a[23],a[24],a[25]
a[33], a[35]
a[43],a[44],a[45]
这8个雷区是否放上了雷,仔细观察它们成在数学关系。抽象出来就是:a[i,j]的雷的个数就是由
a[i-1,j-1],a[i-1,j],a[i-1,j+1]
a[ i ,j-1], a[ i ,j+1]
a[i+1,j-1],a[i+1,j],a[i+1,j+1] (如果超出边界再加以判断)
这样的8个雷区决定的。 扫雷程序还会自动展开已确定没有雷的雷区。如果a[3,4]周围雷数为1,a[2,3]已被标示为地雷,那么a[24],a[25],a[33],a[35],a[43],a[44],a[45]将被展开,一直波及到不可确定的雷区。这也是实现的关键。我们可以把数组的元素设定为一个类对象,它们所属的类设定这样的一个事件:在被展开时,检查周围的雷数是否与周围标示出来的雷数相等,如果相等则展开周围未标示的雷区。这样新的雷区展开又触发这个事件,就这样递归下去,一直蔓延到不可展开的雷区。 相信在了解以上两个要点后,把雷区这个类编写完全(如添加是否有雷标记,是否展开标记,周围雷数等,双击,左右单击的鼠标事件等),实现扫雷程序十分简单
- 扫雷程序思想讲解
- 扫雷程序思想
- 扫雷程序
- java扫雷算法 思想篇
- 自动扫雷程序
- 自动扫雷程序
- 扫雷程序实现
- 我的扫雷程序
- VC 扫雷程序
- C语言扫雷程序
- 扫雷小程序
- 扫雷的java程序
- 控制台版扫雷程序
- 一个扫雷程序
- 扫雷辅助程序
- android扫雷程序
- windows程序扫雷程序设计
- 扫雷外挂程序开发
- Just One Last Dance 很好听的歌,可惜两人最后离婚了。。。。
- Android开发循序渐进实例5--网络访问例子
- 如何检查SQL Server 内存瓶颈
- 杂论随笔
- Catia 二次开发 资料
- 扫雷程序思想
- 【C#】XSLT转换XML实例
- HP Tru64 Unix 操作命令简介
- Linux 系统的单用户模式、修复模式、跨控制台登录在系统修复中的运用及突破root密码的方法
- 2010,我来啦!
- 如何设置redhat linux的IP?
- 伊朗网军黑百度声名大噪 伊朗网络军重现江湖
- Win32 串口编程(三)
- java知识点