|
发表于 2010-7-27 23:06:11
|
显示全部楼层
甘肃省白银市
没玩过QQ连连看 看不懂你要问什么 不过这里有个辅助代码 如果需要就拿去吧
.版本 2
.支持库 BmpOperate
.支持库 xplib
.支持库 shellEx
.支持库 dp1
.支持库 eAPI
.程序集 窗口程序集1
.程序集变量 方块数据, 方块数据, , "19,11"
.程序集变量 位图, 位图
.程序集变量 热键1, 整数型
.程序集变量 热键, 整数型
.程序集变量 方块数量, 整数型, , , 底图里方块的数量
.程序集变量 窗口矩形, 矩形_
.程序集变量 背景图字节集, 字节集
.子程序 __启动窗口_创建完毕
.局部变量 x, 整数型
.局部变量 y, 整数型
XP风格 (1)
热键 = 注册热键 (_启动窗口.取窗口句柄 (), 标签1.取窗口句柄 (), 0, #F4键)
.子程序 _按钮1_被单击
.局部变量 a, 字节集
窗口句柄 = 查找顶级窗口 (0, “QQ游戏 - 连连看角色版”)
a = 快照 (窗口句柄, , )
位图.创建 (800, 600, 位图.取位深度 (), )
位图.载入数据 (a)
图像种类 = 0
.子程序 取临时位图数据, 字节集
.参数 x, 整数型
.参数 y, 整数型
.局部变量 临时位图1, 位图
.局部变量 x1, 整数型
.局部变量 y1, 整数型
.局部变量 x2, 整数型
.局部变量 y2, 整数型
.局部变量 ys, 整数型
临时位图1.创建 (26, 30, 位图.取位深度 (), )
x2 = 0
y2 = 0
.变量循环首 (14 + (x - 1) × 31, 14 + (x - 1) × 31 + 26, 1, x1)
y2 = 0
.变量循环首 (181 + (y - 1) × 35 + 4, 181 + (y - 1) × 35 + 34, 1, y1)
ys = 位图.取某点颜色 (x1, y1)
临时位图1.置某点颜色 (x2, y2, ys)
y2 = y2 + 1
.变量循环尾 ()
x2 = x2 + 1
.变量循环尾 ()
.如果真 (取字节集长度 (压缩数据 (临时位图1.取位图数据 ())) < 80 且 背景图字节集 = { })
背景图字节集 = 临时位图1.取位图数据 ()
.如果真结束
返回 (临时位图1.取位图数据 ())
.子程序 _按钮2_被单击
.局部变量 x, 整数型
.局部变量 y, 整数型
.局部变量 临时位图, 位图
.局部变量 数据号, 整数型
.局部变量 临时数据, 字节集
.局部变量 临时数据1, 字节集
.局部变量 a, 整数型
.计次循环首 (取数组下标 (方块数据, 2), y)
.计次循环首 (取数组下标 (方块数据, 1), x)
a = a + 1
数据号 = (y - 1) × 19 + x
临时数据 = 取临时位图数据 (x, y)
.如果 (临时数据 = 背景图字节集)
方块数据 [数据号].图像类型号 = 0
方块数据 [数据号].图像数据 = 临时数据
.否则
图像比较 (数据号, 临时数据)
.如果结束
.计次循环尾 ()
.计次循环尾 ()
.子程序 图像比较
.参数 数据号, 整数型
.参数 临时数据, 字节集
.局部变量 x, 整数型
.如果 (数据号 = 1)
图像种类 = 图像种类 + 1
方块数据 [数据号].图像类型号 = 图像种类
方块数据 [数据号].图像数据 = 临时数据
方块数量 = 方块数量 + 1
返回 ()
.否则
.如果结束
.计次循环首 (数据号 - 1, x)
.如果 (临时数据 = 方块数据 [x].图像数据)
方块数据 [数据号].图像类型号 = 方块数据 [x].图像类型号
方块数据 [数据号].图像数据 = 临时数据
方块数量 = 方块数量 + 1
返回 ()
.否则
.如果结束
.计次循环尾 ()
图像种类 = 图像种类 + 1
方块数据 [数据号].图像类型号 = 图像种类
方块数据 [数据号].图像数据 = 临时数据
方块数量 = 方块数量 + 1
返回 ()
.子程序 测试连接
.局部变量 y, 整数型
.局部变量 x, 整数型
.局部变量 数据号, 整数型
.局部变量 a, 整数型
.局部变量 第一块坐标, 坐标数据
.局部变量 第二块坐标, 坐标数据
.局部变量 临时图像数组, 坐标数据, , "0"
.局部变量 临时变量, 整数型
.计次循环首 (取数组下标 (方块数据, 2), y)
.计次循环首 (取数组下标 (方块数据, 1), x)
数据号 = (y - 1) × 19 + x
.如果 (方块数据 [数据号].图像类型号 = 0)
到循环尾 ()
.否则
.如果结束
.如果 (a = 0)
第一块坐标.x = x
第一块坐标.y = y
a = 方块数据 [数据号].图像类型号
.否则
到循环尾 ()
.如果结束
清除数组 (临时图像数组)
.如果 (寻找下一个相同块 (数据号, a, x, y, 临时图像数组))
.计次循环首 (取数组成员数 (临时图像数组), 临时变量)
.如果 (判断是否可以相连1 (第一块坐标, 临时图像数组 [临时变量]))
第二块坐标.x = 临时图像数组 [临时变量].x
第二块坐标.y = 临时图像数组 [临时变量].y
模拟点击程序 (第一块坐标, 第二块坐标)
数据号 = (第一块坐标.y - 1) × 19 + 第一块坐标.x
方块数据 [数据号].图像类型号 = 0
数据号 = (第二块坐标.y - 1) × 19 + 第二块坐标.x
方块数据 [数据号].图像类型号 = 0
方块数量 = 方块数量 - 2
返回 ()
.否则
.如果结束
.计次循环尾 ()
a = 0
.否则
a = 0
.如果结束
.计次循环尾 ()
.计次循环尾 ()
.如果真 (选择框1.选中 = 真)
时钟1.时钟周期 = 0
按钮3.禁止 = 假
编辑框1.禁止 = 假
编辑框2.禁止 = 假
滑块条1.禁止 = 假
_启动窗口.标题 = “已经停止自动点击”
返回 ()
.如果真结束
.子程序 寻找下一个相同块, 逻辑型
.参数 数据号, 整数型
.参数 图号, 整数型
.参数 x, 整数型
.参数 y, 整数型
.参数 临时图像数组, 坐标数据, 数组
.局部变量 局部数据号, 整数型
.局部变量 临时坐标, 坐标数据
.计次循环首 (取数组下标 (方块数据, 2), y)
.计次循环首 (取数组下标 (方块数据, 1), x)
局部数据号 = (y - 1) × 19 + x
.如果 (局部数据号 > 数据号 且 方块数据 [局部数据号].图像类型号 = 图号)
临时坐标.x = x
临时坐标.y = y
加入成员 (临时图像数组, 临时坐标)
.否则
.如果结束
.计次循环尾 ()
.计次循环尾 ()
.如果 (临时坐标.x = 0)
返回 (假)
.否则
返回 (真)
.如果结束
.子程序 双直线判断, 逻辑型
.参数 第一块坐标, 坐标数据
.参数 第二块坐标, 坐标数据
.局部变量 x, 整数型
.局部变量 局部数据号, 整数型
.局部变量 y, 整数型
.局部变量 结果x1, 逻辑型
.局部变量 结果x2, 逻辑型
.局部变量 结果y1, 逻辑型
.局部变量 结果y2, 逻辑型
.局部变量 临时逻辑1, 逻辑型
.局部变量 abc, 整数型
y = 第一块坐标.y
.变量循环首 (第一块坐标.x, 第二块坐标.x, 选择 (第一块坐标.x > 第二块坐标.x, -1, 1), x)
.如果 (abc = 0)
abc = abc + 1
到循环尾 ()
.否则
.如果结束
局部数据号 = (y - 1) × 19 + x
.如果 (方块数据 [局部数据号].图像类型号 = 0)
结果x1 = 真
.否则
结果x1 = 假
跳出循环 ()
.如果结束
.变量循环尾 ()
abc = 0
y = 第二块坐标.y
.变量循环首 (第二块坐标.x, 第一块坐标.x, 选择 (第一块坐标.x > 第二块坐标.x, 1, -1), x)
.如果 (abc = 0)
abc = abc + 1
到循环尾 ()
.否则
.如果结束
局部数据号 = (y - 1) × 19 + x
.如果 (方块数据 [局部数据号].图像类型号 = 0)
结果x2 = 真
.否则
结果x2 = 假
跳出循环 ()
.如果结束
.变量循环尾 ()
x = 第一块坐标.x
abc = 0
.变量循环首 (第一块坐标.y, 第二块坐标.y, 选择 (第一块坐标.y > 第二块坐标.y, -1, 1), y)
.如果 (abc = 0)
abc = abc + 1
到循环尾 ()
.否则
.如果结束
局部数据号 = (y - 1) × 19 + x
.如果 (方块数据 [局部数据号].图像类型号 = 0)
结果y1 = 真
.否则
结果y1 = 假
跳出循环 ()
.如果结束
.变量循环尾 ()
abc = 0
x = 第二块坐标.x
.变量循环首 (第二块坐标.y, 第一块坐标.y, 选择 (第一块坐标.y > 第二块坐标.y, 1, -1), y)
.如果 (abc = 0)
abc = abc + 1
到循环尾 ()
.否则
.如果结束
局部数据号 = (y - 1) × 19 + x
.如果 (方块数据 [局部数据号].图像类型号 = 0)
结果y2 = 真
.否则
结果y2 = 假
跳出循环 ()
.如果结束
.变量循环尾 ()
.如果 (位与 (到整数 (结果x1), 到整数 (结果y2)) ≠ 0 或 位与 (到整数 (结果x2), 到整数 (结果y1)) ≠ 0)
返回 (真)
.否则
返回 (假)
.如果结束
.子程序 三直线判断, 逻辑型
.参数 第一块坐标, 坐标数据
.参数 第二块坐标, 坐标数据
.局部变量 y, 整数型
.局部变量 x, 整数型
.局部变量 临时坐标, 坐标数据
.局部变量 局部数据号, 整数型
x = 第二块坐标.x
.变量循环首 (第二块坐标.y + 1, 11, 1, y) ' 判断y向下
局部数据号 = (y - 1) × 19 + x
.如果 (方块数据 [局部数据号].图像类型号 = 0)
临时坐标.x = x
临时坐标.y = y
.如果 (双直线判断 (第一块坐标, 临时坐标))
返回 (真)
.否则
.如果结束
.否则
跳出循环 ()
.如果结束
.变量循环尾 ()
.变量循环首 (第二块坐标.y - 1, 1, -1, y) ' 判断y向上
局部数据号 = (y - 1) × 19 + x
.如果 (方块数据 [局部数据号].图像类型号 = 0)
临时坐标.x = x
临时坐标.y = y
.如果 (双直线判断 (第一块坐标, 临时坐标))
返回 (真)
.否则
.如果结束
.否则
跳出循环 ()
.如果结束
.变量循环尾 ()
y = 第二块坐标.y
.变量循环首 (第二块坐标.x + 1, 19, 1, x) ' 判断x向右
局部数据号 = (y - 1) × 19 + x
.如果 (方块数据 [局部数据号].图像类型号 = 0)
临时坐标.x = x
临时坐标.y = y
.如果 (双直线判断 (第一块坐标, 临时坐标))
返回 (真)
.否则
.如果结束
.否则
跳出循环 ()
.如果结束
.变量循环尾 ()
.变量循环首 (第二块坐标.x - 1, 1, -1, x) ' 判断x向左
局部数据号 = (y - 1) × 19 + x
.如果 (方块数据 [局部数据号].图像类型号 = 0)
临时坐标.x = x
临时坐标.y = y
.如果 (双直线判断 (第一块坐标, 临时坐标))
返回 (真)
.否则
.如果结束
.否则
跳出循环 ()
.如果结束
.变量循环尾 ()
返回 (假)
.子程序 单直线判断, 逻辑型
.参数 第一块坐标, 坐标数据
.参数 第二块坐标, 坐标数据
.局部变量 abc, 整数型
.局部变量 结果x1, 逻辑型
.局部变量 x, 整数型
.局部变量 y, 整数型
.局部变量 局部数据号, 整数型
.局部变量 结果y1, 逻辑型
.如果 (第一块坐标.y = 第二块坐标.y)
y = 第一块坐标.y
.变量循环首 (第一块坐标.x, 第二块坐标.x, 选择 (第一块坐标.x > 第二块坐标.x, -1, 1), x)
.如果 (abc = 0)
abc = abc + 1
到循环尾 ()
.否则
.如果结束
局部数据号 = (y - 1) × 19 + x
.如果 (方块数据 [局部数据号].图像类型号 = 0)
结果x1 = 真
.否则
结果x1 = 假
跳出循环 ()
.如果结束
.变量循环尾 ()
.如果 (x = 第二块坐标.x)
返回 (真)
.否则
.如果结束
.否则
.如果结束
abc = 0
.如果 (第一块坐标.x = 第二块坐标.x)
x = 第一块坐标.x
.变量循环首 (第一块坐标.y, 第二块坐标.y, 选择 (第一块坐标.y > 第二块坐标.y, -1, 1), y)
.如果 (abc = 0)
abc = abc + 1
到循环尾 ()
.否则
.如果结束
局部数据号 = (y - 1) × 19 + x
.如果 (方块数据 [局部数据号].图像类型号 = 0)
结果y1 = 真
.否则
结果y1 = 假
跳出循环 ()
.如果结束
.变量循环尾 ()
.如果 (y = 第二块坐标.y)
返回 (真)
.否则
.如果结束
.否则
.如果结束
返回 (假)
.子程序 判断是否可以相连1, 逻辑型
.参数 a, 坐标数据
.参数 b, 坐标数据
.如果 (单直线判断 (a, b))
返回 (真)
.否则
.如果结束
.如果 (双直线判断 (a, b))
返回 (真)
.否则
.如果结束
.如果 (三直线判断 (a, b))
返回 (真)
.否则
.如果结束
返回 (假)
.子程序 _按钮7_被单击
.如果 (时钟1.时钟周期 = 0)
时钟1.时钟周期 = 1000
.否则
时钟1.时钟周期 = 0
.如果结束
.子程序 模拟点击程序, 逻辑型
.参数 坐标1, 坐标数据
.参数 坐标2, 坐标数据
模拟鼠标点击 (坐标1.x × 31 + 13 - 15 + 窗口矩形.左边, 坐标1.y × 34 + 180 - 17 + 窗口矩形.顶边, 0)
延时 (10)
模拟鼠标点击 (坐标2.x × 31 + 13 - 15 + 窗口矩形.左边, 坐标2.y × 34 + 180 - 17 + 窗口矩形.顶边, 0)
返回 (真)
.子程序 _时钟1_周期事件
测试连接 ()
.子程序 _标签1_反馈事件, 整数型
.参数 参数一, 整数型
.参数 参数二, 整数型
_按钮1_被单击 ()
_按钮2_被单击 ()
.如果真 (参数一 = 热键)
.如果 (时钟1.时钟周期 ≠ 0)
按钮3.禁止 = 假
编辑框1.禁止 = 假
编辑框2.禁止 = 假
滑块条1.禁止 = 假
_启动窗口.标题 = “已经停止自动点击”
时钟1.时钟周期 = 0
.否则
取窗口矩形_ (窗口句柄, 窗口矩形)
时钟1.时钟周期 = 到整数 (编辑框2.内容)
按钮3.禁止 = 真
编辑框1.禁止 = 真
编辑框2.禁止 = 真
滑块条1.禁止 = 真
_启动窗口.标题 = “已经开始自动点击”
.如果结束
.如果真结束
.子程序 _滑块条1_位置被改变
编辑框2.内容 = 到文本 (滑块条1.位置)
.子程序 _编辑框2_内容被改变
编辑框1.内容 = 到文本 (到数值 (编辑框2.内容) ÷ 1000)
滑块条1.位置 = 到整数 (编辑框2.内容)
.子程序 _按钮3_被单击
编辑框2.内容 = “1” |
|