二维数组在实际中的运用–清包找物品

Dim 区域=array(146,318,473,456) '这里设置区域
Dim 距离X, 距离Y  '定义区域内每个格子的距离
距离x = clng((区域(2) - 区域(0)) / 5)  '计算距离 , 横向5个格子
距离Y= clng((区域(3)-区域(1))/2)  ' 计算距离 , 竖向2个格子
TracePrint 距离X, 距离Y
Dim 起X(4,1),起Y(4,1),终X(4,1),终y(4,1)  '定义每个格子的起点和终点的坐标,这就是二维数组的定义了,表示横向有4+1个点,竖向有1+1个点

For i=0 to 4
    For j = 0 To 1
        起X(i,j) = 区域(0) + i * 距离X
        起Y(i,j)= 区域(1)+ j*距离y
        终X(i,j)=区域(0)+ (i+1)*距离x
        终y(i,j)=区域(1)+ (j+1)*距离y
        TracePrint 起X(i,j),起Y(i,j),终X(i,j),终y(i,j)
    Next
Next


/*
二维数组的用法 
二维数组的每一个成员只是一个值,不太容易理解,需要各位慢慢摸索
如果实在看不懂呢,请自行搜索紫猫免费经典教程----消消乐的课程

附件中的图片是最上面的代码的示意图,各位慢慢研究一下 

例如:在一个区域内有相同的10个格子,从这10个格子当中分别把起点坐标和终点坐标算出来,怎么计算?
为什么要出这个题? 
大家先看看安卓按键中 区域找色的例子:
Dim intX,intY
FindMultiColor 201,428,421,474,"707070","59|-5|FFFFFF,-35|-15|8F8F8F,46|-2|000000",0,0.9,intX,intY
If intX > -1 And intY > -1 Then
  TracePrint intX
  TracePrint intY
End If
以上例子中是在一个区域内找一组颜色数据,那么问题换成在10个格子中找其他颜色数据呢?那么这10个格子中放的东西不一样呢?
我们是不是利用二维数组计算这10个格子的区域范围,就可以不用每次都再取一次范围了啊
当然,你也可以每个格子都手动取范围,那如果是6*10个格子呢?  
以上代码就可以利用二维数组来封装成一个函数,直接套用成以下:
用在哪些地方呢?
例如在这10个格子当中寻找3中物品......

*/

Dim 数,intX,intY
Dim 物品()   '只需要背包中的数据,区域不写
物品(0) = array("707070", "59|-5|FFFFFF,-35|-15|8F8F8F,46|-2|000000")
物品(1) = array("505050", "59|-5|000000,-35|-15|8F8F8F,46|-2|FFFFFF")
物品(2)=array("505050", "59|-5|000000,-35|-15|8F8F8F,46|-2|FFFFFF")


Function 清包(数据)
    For k = 0 To UBound(数据)
        数=数据(k)
        For i=0 to 4
            For j = 0 To 1
                起X(i,j) = 区域(0) + i * 距离X
                起Y(i,j)= 区域(1)+ j*距离y
                终X(i,j)=区域(0)+ (i+1)*距离x
                终y(i,j)=区域(1)+ (j+1)*距离y
                TracePrint 起X(i, j), 起Y(i, j), 终X(i, j), 终y(i, j)
                FindMultiColor 起X(i, j), 起Y(i, j), 终X(i, j), 终y(i, j),数(0),数(1),0,0.9,intX,intY
                If intX > -1 And intY > -1 Then
                    TracePrint "找打啦 啊啊  "
                Else 
                    TracePrint "没有找到啊啊啊 "
                End If
            Next
        Next
    Next
End Function
清包 物品

 

赞 (0)