程序辅助扫雷的几种方法

原创 2003年09月09日 08:50:00

程序辅助扫雷的几种方法
2003.9.6

我的手很笨,不怕大家笑话,挖地雷从来没有低过 140(从Windows3.1开始),所以有时候就想做个程序“辅助一下”。以下是自己想到的几种方法。

方法 1: 让程序替我们挖

先人工挖开一片“空地”,然后启动我们的程序,读扫雷程序的 Window 的界面 DC,然后进行简单的图像提取,提取出已经挖开的空地内的所有数字,设计一个算法计算哪些方块下面有地雷,以此向扫雷的 Window 发鼠标消息(左、右单击),看着扫雷的界面一块一块的展开,直到必须人工“蒙”的时候,人工干预一下。如果算法写不好可能比较慢(但比我自己挖快多了)。
前几天在清华的BBS上看到了一个人用 Java 写的这样一个程序,具体位置记不清了。

方法 2: 打开地雷图我们自己挖

启动扫雷程序后,启动我们的程序,然后做两个事情:一,把扫雷程序的 Windows 设置成透明的(Alpha值稍大于0,只能在win2k、xp上),把我们的程序做成界面与扫雷的一模一样,但不透明,然后放到扫雷程序的 Window 的后面。二,从扫雷程序的进程地址中读取内部数据,得到每个地雷的位置,然后显示在我们的程序的界面上,哈哈,是不是感觉地雷图已经打开了,我们只要狂点扫雷程序的没有地雷的地方就可以了。
CSDN 上有文章讲如何从扫雷进程中取得地图数据:http://www.csdn.net/develop/Article/19/19921.shtm
http://expert.csdn.net/Expert/topic/2188/2188775.xml?temp=.1479456

方法 3: 程序自己打开地图自己挖

我们的程序从扫雷进程中取得地图数据,然后向扫雷程序的 Window 发一堆鼠标消息(左、右单击),直接将所有地雷挖出来。估计会很快,但是不是没什么乐趣了?

方法 4: 恶作剧

我们的程序从扫雷进程中取得地图数据,然后生成地雷已经全挖开的结果界面(位图),然后直接将位图写到扫雷程序的 Window 的 DC 中,结果会怎么样?是不是如果鼠标点的话,地雷已经全挖开了,而计时器仍然在跳?

方法 5: 停止计时器

这是我实际做过的一个方法。我们的程序运行时,向系统中塞进去一个消息钩子,把扫雷程序的 Window 的 WM_TIMER 改掉,想开始计时再改回来。这样,我可以心安理得的挨个判断地雷,不用担心计时器,可是到头来却发现扫雷变成了10以内的数学判断。

方法 6: 让扫雷程序自己挖开

我们的程序运行的时候,替换掉扫雷进程的某断代码或塞进去一个钩子,结果是点击那个小黄脸的时候,地图就全挖开了。关于这个方法我只是猜想,没有实际的经验,只能估计可行。


 

windows xp 自带扫雷程序 辅助 源码

  • 2011年04月15日 09:38
  • 5.06MB
  • 下载

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

逐步走向逆向的坑 , 慢慢的锻炼 也算是一种兴趣爱好吧突然起兴 , (及时行乐) 就想着尝试分析一下扫雷 这次就用 winxp自带的扫雷试试 查壳使用peid 直接拖进去 可以看到 是使用V...

ios开发中常用的几种辅助方法

//1.Keychain本地长期键值存储 //删除 +(void)deleteStringForKey:(NSString *)aKey { NSMutableDictionary *quer...

JS事件处理程序的几种方法

JavaScript与HTML之间的交互是通过事件实现的。事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间。   事件就是用户或浏览器自身执行的某种动作。诸如click,l...

几种软件滤波方法及其示例程序

  • 2013年10月14日 14:17
  • 47KB
  • 下载

微信小程序 传值取值的几种方法总结,百分百会用到

微信小程序 传值取值 小程序里常见的取值有以下几种,一个完整的项目写下来,用到的概率几乎是100%。 列表index下标取值 页面传值 form表单取值 1. 列表index...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:程序辅助扫雷的几种方法
举报原因:
原因补充:

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