扫雷程序思想讲解

原创 2002年01月22日 11:37:00

      扫雷程序思想讲解
    在我大二的时候就编写了一个扫雷程序,现在也有很多
源程序下载,我不知道他们的算法是怎么样的,但我想我的
算法应是最清晰和简单的。下面就来讲解我的扫雷程序思想。
    首先我们在雷区上随机地放上雷,没有雷的地方被点击
后就会显示一个数字表示它周围有几个雷,这是怎么实现的
呢?我们可以把整个雷区看成一个二维数组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]
将被展开,一直波及到不可确定的雷区。这也是实现的
关键。我们可以把数组的元素设定为一个类对象,它们
所属的类设定这样的一个事件:在被展开时,检查周围
的雷数是否与周围标示出来的雷数相等,如果相等则展
开周围未标示的雷区。这样新的雷区展开又触发这个事
件,就这样递归下去,一直蔓延到不可展开的雷区。
    相信在了解以上两个要点后,把雷区这个类编写完全
(如添加是否有雷标记,是否展开标记,周围雷数等,双
击,左右单击的鼠标事件等),实现扫雷程序应是十分简
单的一件事。



   
   zg
   nozg@263.net

windows程序扫雷程序设计

在学习windows程序设计中,我们希望通过一个完整的程序来学习windows API这是本人在上杨力祥老师的课程是自己写的扫雷程序。     下面是。cpp文件 #include #include...
  • zhouyelihua
  • zhouyelihua
  • 2014年07月07日 18:26
  • 4710

中科院-杨力祥视频教程 01课程

1.主要介绍了windows编程的优势,还有能做些什么。 2.讲解了这门课主要完成的作业,两个大程序:C语言+ windowsAPI 完成扫雷程序的山寨,C++ MFC完成股票交易系统 3.列举了一些...
  • misakahina
  • misakahina
  • 2014年03月07日 09:47
  • 1249

windows程序设计(3):分解扫雷程序之雷区翻盖

假如让你写一个扫雷程序,在没有相关资料的前提下,应该从哪里入手呢? 我们先想想扫雷程序都有什么:菜单,秒表,记雷数,复位,还有雷区等杂七杂八的东西。而整个程序的关键,就在于雷区。因为如果没有秒表,记...
  • thefutureisour
  • thefutureisour
  • 2012年05月07日 17:01
  • 1790

收藏的扫雷

Public num As Integer, i As Integer, j As Integer, k As Integer, num2 As Integer, num3 As Integer Di...
  • pppjza
  • pppjza
  • 2015年07月20日 21:03
  • 120

android扫雷程序

制作了扫雷程序,点击模拟鼠标左键,长按模拟鼠标右键,即标记。 首先是每个方块部分的代码: /** * 设置初始化 */ public void setDefaults() {...
  • shensens
  • shensens
  • 2013年06月14日 15:48
  • 1291

c语言编程 :模拟实现简单扫雷游戏

这里指的扫雷是简单模拟电脑中的扫雷游戏,但以我目前的水平,也就只能在黑框中实现 test.c #include #include #include #include "game2.h" voi...
  • ChaseRaod
  • ChaseRaod
  • 2017年01月11日 17:09
  • 1463

扫雷程序思想

扫雷程序思想讲解在我大二的时候就编写了一个扫雷程序,现在也有很多源程序下载,我不知道他们的算法是怎么样的,但我想我的算法应是最清晰和简单的。下面就来讲解我的扫雷程序思想。    首先我们在雷区上随机地...
  • lliang417
  • lliang417
  • 2010年01月27日 12:41
  • 491

windows程序设计(4):分解扫雷程序之计时器

上次忘了说明,因为我想做一个逼真的扫雷,所以我的扫雷程序的位图都是从windowsXP下面的扫雷里来的。具体是怎么获取位图的呢?我的是windows7系统,里面的扫雷跟XP的不一样,我先下载了一个Xp...
  • thefutureisour
  • thefutureisour
  • 2012年05月13日 20:12
  • 2801

扫雷程序思想讲解

      扫雷程序思想讲解    在我大二的时候就编写了一个扫雷程序,现在也有很多源程序下载,我不知道他们的算法是怎么样的,但我想我的算法应是最清晰和简单的。下面就来讲解我的扫雷程序思想。    首...
  • whynozg
  • whynozg
  • 2002年01月22日 11:37
  • 661

WinXP下 扫雷程序逆向分析 --扫雷辅助(一)

逐步走向逆向的坑 , 慢慢的锻炼 也算是一种兴趣爱好吧突然起兴 , (及时行乐) 就想着尝试分析一下扫雷 这次就用 winxp自带的扫雷试试 查壳使用peid 直接拖进去 可以看到 是使用V...
  • zz709196484
  • zz709196484
  • 2017年11月21日 02:58
  • 262
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:扫雷程序思想讲解
举报原因:
原因补充:

(最多只允许输入30个字)