TC官方合作论坛

 找回密码
 立即注册
查看: 4825|回复: 15

[功能] DNF拍卖行数字识别方法(不用做字库,纯TC语句实现)

  [复制链接]
发表于 2014-1-9 00:00:10 | 显示全部楼层 |阅读模式
本帖最后由 sziamchl 于 2014-1-9 00:24 编辑

空间 DNF拍卖行数字识别
//默认空间
//开始按钮_点击操作
功能 开始_点击()
    //从上面9个8的图中可以得出,是59乘8的像素区域大小
    总金额点阵=数组[59][8]   //建立一个二维数,来记录图像区域每一个像素的信息
   
    遍历(i=0;i<59;i++)
        遍历(j=0;j<8;j++)
        
    总金额点阵[j]=0
        遍历结束
    遍历结束    //将数组的每一个值初始为0
   
    遍历(i=0;i<59;i++)
        遍历(j=0;j<8;j++)
            如果(图像.坐标点取色(i+538,j+132)==#FFB400)   //黄色数字颜色值为#FFB400,用AB抓抓可以方便获得
                总金额点阵[j]=1                        //执行时请先打开拍卖行,搜索某种物品,显示出物品价格
            如果结束                                      //不要拖动拍卖行改变位置
        遍历结束
    遍历结束       //将每一个像素点取色,对应的位置斌值为1      
   
    检测坐标=57       //上面9个8的图中红色这点对应数组下标为57,记得数组下标是从0开始的
    //我们从最右边的数字一直往左找
   
    总金额字数=0
    总金额=""
    循环(总金额点阵[检测坐标][0]==1)   //如果为0,则代表后面没有数字了,不用再找下去
        
        //下面判断的方法有很多种,
        如果(总金额点阵[检测坐标-2][4]==1)    //确定数字是9(表格中B5位置)
            总金额="9"&总金额
            跳转 找到数后来这里
        如果结束
        
        如果(总金额点阵[检测坐标+1][3]==1)   //确定数字是0(表格中E4位置)
            总金额="0"&总金额                //虽然此位置有可能是0或9,但如果是9,此如果语句不会执行
            跳转 找到数后来这里
        如果结束
        
        如果(总金额点阵[检测坐标-1][1]==1)  //1或4(表格中C2位置)
            如果(总金额点阵[检测坐标-1][5]==1)    //确定数字是4(表格中C6位置)
                总金额="4"&总金额
            否则                                   //确定数字是1
                总金额="1"&总金额
                检测坐标+=2           //数字1的宽度只有3个像素点,比其它数字5个像素点少2个,所以加2
            如果结束
            跳转 找到数后来这里
        如果结束
        
        如果(总金额点阵[检测坐标-1][6]==1)    //确定数字是7(表格中C7位置)
            总金额="7"&总金额
            跳转 找到数后来这里
        如果结束
        
        如果(总金额点阵[检测坐标+1][0]==1)    //确定数字是5(表格中E1位置)
            总金额="5"&总金额                 //虽然此位置有可能是5或7,但如果是7,此如果语句不会执行
            跳转 找到数后来这里
        如果结束
        
        如果(总金额点阵[检测坐标-3][7]==1)    //确定数字是2(表格中A7位置)
            总金额="2"&总金额
            跳转 找到数后来这里
        如果结束
        
        如果(总金额点阵[检测坐标][1]==1)    //确定数字是6(表格中D2位置)
            总金额="6"&总金额               //虽然有1467,道理同上
            跳转 找到数后来这里
        如果结束
        
        如果(总金额点阵[检测坐标-2][3]==1)    //确定数字是8(表格中B4位置)
            总金额="8"&总金额
        否则                                  //最后还有3没找到,只有3这个可能了
            总金额="3"&总金额
        如果结束
        
找到数后来这里:
        
        总金额字数+=1                            //此变量来记录一共找到多少个数字了
        检测坐标-=6                              //相连的2个数字,位置相差6个像素点           
        如果((总金额字数==3)||(总金额字数==6))   //因为每3个或6个数字,有个逗号分隔
            检测坐标-=3
        如果结束
        如果(检测坐标<0)                         //防止数组下标溢出,少于0代表已经找满9位数字了
            跳出
        如果结束  
    循环结束
   
    辅助.消息框("物品总价是:"&总金额)
   
功能结束
//退出按钮_点击操作
功能 退出_点击()
   
    辅助.退出()
功能结束
空间结束
//空间结束语句


注释已经很祥细了,语句也很简洁,高手匆喷
有兴趣的朋友,可以按此方法,再做一个识别物品数量的功能出来,就可以算出物品的单价了
然后加上各种鼠标功能操作,就可以自己做一个扫拍卖行的脚本出来了。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

发表于 2014-1-9 00:04:37 | 显示全部楼层
太强了。
回复

使用道具 举报

 楼主| 发表于 2014-1-9 00:16:50 | 显示全部楼层
晕了,第一次发贴,哪个字怎么不正的,改不过来
还有2个遍历哪条语句应该分别为:总金额点阵[i][j]=0和总金额点阵[i][j]=1的
回复 支持 反对

使用道具 举报

发表于 2014-1-9 00:49:03 | 显示全部楼层
支持,虽然强大,但不建议新手去用,毕竟新手还没完全掌握,难免使用时会出现各种错误。
回复 支持 反对

使用道具 举报

发表于 2014-1-9 12:07:01 | 显示全部楼层
你不需要字库 其实你还是自己采集了每个字的特征码
个人感觉没必要吧
回复 支持 反对

使用道具 举报

发表于 2014-1-9 13:09:37 | 显示全部楼层
认同楼上的
其实这也是在做字库
只是类把做字库源码化或者复杂化
不过用于自动验证码方面的研究
回复 支持 反对

使用道具 举报

发表于 2014-2-17 01:31:48 | 显示全部楼层
感谢楼主分享,论坛没你不精彩
回复 支持 反对

使用道具 举报

发表于 2014-2-25 13:36:04 | 显示全部楼层
顶一个
回复

使用道具 举报

发表于 2014-2-27 21:41:32 | 显示全部楼层
有意思么。。可以做字库的东西非要弄这么复杂
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-27 22:59:16 | 显示全部楼层
twsxtd 发表于 2014-2-27 21:41
有意思么。。可以做字库的东西非要弄这么复杂

问题是字库我现在都还未掌握,不知道怎弄?
要不你发个程序上来看看,就识别拍卖行的哪个数字,让我学习一下。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-5-19 17:37 , Processed in 0.038186 second(s), 23 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

快速回复 返回顶部 返回列表