`
huobengle
  • 浏览: 864838 次
文章分类
社区版块
存档分类
最新评论

QQ连连看小外挂一个

 
阅读更多
大二的一个课程设计

一:问题描述

分析连连看游戏的棋盘,找出能消去的棋子,模拟点击消去一对棋子直至全部消去。

二:问题分析:

通过spy++找出连连看游戏窗口的标题字符串,然后调用FindWindow函数找到窗口句柄,再根据返回的窗口句柄值通过调用GetWindowThreadProcessId得到进程ID,然后就可以OpenProcess了,进入QQ连连看进程的地址空间可以根据基址0x0012A444,通过ReadProcessMemory读出棋盘数据,得到的是一个二维数组,关于棋盘基址的获得是使用CE搜索到的。得到二维数组后,分析数据,找到可以消去的棋子,向窗口句柄通过SendMessage发送鼠标消息来模拟点击,实现棋子的消去。

三:算法设计:

使用的是广度优先搜索。对于得到的二维数组,遍历任意两个点,判断其是否可以连通消去(最多有三个折点)先定义一个保存点的坐标和 要走的方向、折线数的结构体qtype,再定义一个sqtype结构体保存格点。首先将p1设置为当前格点,传入来的两点坐标都赋值为0(防止两个点紧挨着时也是可以消去的),然后从当前格点的四个方向开始搜索能否走动,不断将搜到的可行点改为当前格点,不能走通后改变方向搜索,并且折点数加1,折点数大于3的时候回到前一格点换方向查找。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics