网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Delphi
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.从数据库绘制MapX地图.
.应用程序敏感键的实现.
.程序快捷方式/程序删除项/EXE自删.
.李维问答集之语言真的不重要吗?.
.Cookie的建立使用.
.delphi小技巧集锦.
.如何制作帮助文件.
.singleton之我见.
.PB开发规范.doc.
.Linux的开发利器,Kylix.
.DBGrid单元格画圆圈.
.关于在VCL写作过程中提示找不Pro.
.如何在注册表中注册BDE.
.Delphi的压缩流与解压流.
.DELPHI下调节器用EXCEL为其编辑和.
.Delphi下常用转换(一).
.在Delphi程序中调用控制面板设置.
.利用热键控制鼠标移动的一个程序.
.多层数据库开发九:查询数据库.
.查找某目录下的所有文件.

扫雷程序思想讲解

发表日期:2006-2-4


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

上一篇:取得某一dll所有输出函数名 人气:4334
下一篇:《Delphi高手突破》第一章——预览版 人气:3924
浏览全部Delphi的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐