1. 定义常量 forreading = 1
  2. 定义常量 forwriting = 2
  3. 定义常量 forappending = 8
  4. 定义常量 ParaGrayLevel = 70
  5. 注释:灰度:黑底 则 >ParaGrayLevel 为1 小于为0
  6. 注释:灰度:白底 则 <ParaGrayLevel 为1 大于为0
  7. 注释:灰度:白底时,此值应设大些,比如200
  8. 注释:Dim GA( 4, 10 )
  9. (语句无法识别,可能有错误): Dim GA( 20, 20 ) // 英雄无敌中,一个数字为4*9
  10. 定义变量 MyArray, Rx, Ry
  11. 注释:单点调试用
  12. 注释:Rx = GetPosNum( "981,6", 4, 9 )
  13. 注释:MessageBox Rx
  14. 注释:
  15. 令 Rx = GetPosNum("939,6",4,9) & GetPosNum("945,6",4,9) & GetPosNum("951,6",4,9)
  16. 令 Ry = GetPosNum("969,6",4,9) & GetPosNum("975,6",4,9) & GetPosNum("981,6",4,9)
  17. 弹出窗口 Rx & "," & Ry
  18. 函数 GetPosNum(XYbegin,MyXStep,MyYStep)
  19.     注释:XYbegin=数字的左上角坐标 (游戏屏幕坐标)
  20.     注释:MyXStep=X轴步长
  21.     注释:MyYStep=Y轴步长
  22.     定义变量 MyArray
  23.     定义变量 Rx, Ry, Num
  24.     定义变量 Rs
  25.     令 GetPosNum = - 1
  26.     注释:数组溢出判断
  27.     如果 MyXStep > 10 或者 MyXStep < 1 则
  28.         如果 MyXStep > 10 或者 MyXStep < 1 则
  29.             如果 InStr(XYbegin,",") = 0 则
  30.                 跳转到标记 EndOfGetPosNum(函数 GetPosNum)
  31.             条件结束
  32.         条件结束
  33.     条件结束
  34.     注释:初始化数组
  35.     循环 i 从 1 到 MyXStep + 10
  36.         循环 j 从 1 到 MyYStep + 10
  37.             令 GA(i,j) = - 1
  38.         循环结束
  39.     循环结束
  40.     注释:建立灰度表
  41.     令 MyArray = Split(XYbegin,",")
  42.     令 Rx = CInt(MyArray(0))
  43.     令 Ry = CInt(MyArray(1))
  44.     循环 i 从 1 到 MyXStep
  45.         循环 j 从 1 到 MyYStep
  46.             令 Rs = 得到指定点 (Rx + i - 1, Ry + j - 1) 的颜色
  47.             如果 GetRedOfRGB(Rs) > ParaGrayLevel 则
  48.                 注释:白底则用 < ParaGrayLevel
  49.                 令 GA(i,j) = 1
  50.             否则
  51.                 令 GA(i,j) = 0
  52.             条件结束
  53.         循环结束
  54.     循环结束
  55.     令 str = ""
  56.     循环 j 从 1 到 9
  57.         循环 i 从 1 到 4
  58.             令 Str = Str & GA(i,j) & "|"
  59.         循环结束
  60.         令 Str = Str & vbCrlf
  61.     循环结束
  62.     注释:调用GetNum判断是数字0--9中的哪个
  63.     令 Num = GetNum(MyXStep,MyYStep)
  64.     令 GetPosNum = Num
  65.     注释:返回值格式为: 指定区域翻译过来的数字0--9
  66.     标记 EndOfGetPosNum(函数 GetPosNum)
  67.     注释:调试找特征用
  68.     注释:MessageBox Str&Num
  69. 函数结束
  70. 函数 GetNum(MyXStep,MyYStep)
  71.     注释:对全局变量ParaGrayLevel进行特征比对
  72.     定义变量 parallel
  73.     注释:初始化返回值,-1为未找到匹配的特征
  74.     令 GetNum = - 1
  75.     注释:进行特征判断,分别是0--9共10个数字
  76.     循环 parallel 从 1 到 10
  77.         注释:原本只需用指定位置进行对比就可以
  78.         注释:这里用相对移动的判断,
  79.         注释:是为了图形数字识别作准备
  80.         循环 i 从 1 到 MyXStep
  81.             循环 j 从 1 到 MyYStep
  82.                 注释:2*5的空洞,为0
  83.                 令 Fs = "" & GA(i,j) & GA(i + 1,j)
  84.                 令 Fs = Fs & GA(i,j + 1) & GA(i + 1,j + 1)
  85.                 令 Fs = Fs & GA(i,j + 2) & GA(i + 1,j + 2)
  86.                 令 Fs = Fs & GA(i,j + 3) & GA(i + 1,j + 3)
  87.                 令 Fs = Fs & GA(i,j + 4) & GA(i + 1,j + 4)
  88.                 如果 Fs = "0000000000" 则
  89.                     令 GetNum = 0
  90.                     跳转到标记 EndOfGetNum(函数 GetNum)
  91.                 条件结束
  92.             循环结束
  93.         循环结束
  94.         循环 i 从 1 到 MyXStep
  95.             循环 j 从 1 到 MyYStep
  96.                 注释: 9 的下半部分特征,空处为0/1
  97.                 注释: 11
  98.                 注释: 0 1
  99.                 注释: 1
  100.                 注释: 11