300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > android连连看源代码 #经典连连看#源码分享

android连连看源代码 #经典连连看#源码分享

时间:2019-08-02 04:58:30

相关推荐

android连连看源代码 #经典连连看#源码分享

Dim qdx,qdy,jk,jg,colorsex,colors,colorss,colorssex,临时列表

Dim 格子(9,13),检测(9,13)

//格子数组是保存每个格子数据,检测数组是保存格子是否为空

Dim 横向一步列表,纵向一步列表

横向一步列表 = "s" : 纵向一步列表 = "s" //初始化值

Dim 延迟

延迟 = 5 //适当加个延迟

SetControlBarPos 0.9

qdx = 65 : qdy = 76 //起点x,起点y

jk = 81 : jg = 81//每个格子宽距离和高距离

For i = 0 To 9

格子(i, 0) = 0

检测(i, 0) = 0

格子(i, 13) = 0

检测(i, 13) = 0

Next

For j = 0 To 13

格子(0, j) = 0

检测(0, j) = 0

格子(9, j) = 0

检测(9, j) = 0

Next

//==================两组for循环是因为连连看可以从边缘连击,所以创造一个边缘格子数组,0表示什么都没有==================

Rem 重新开始

Do

Dim 无用格子

无用格子 = ""

KeepCapture

For j = 1 To 12 //获取格子颜色 进行分类

For i = 1 To 8

colors = ColorDiff(GetPixelColor(qdx + (i-1) * jk, qdy + (j-1) * jg), "000000")

格子(i,j) = colors // 获取每个格子的颜色 以便连击

If ColorDiff(GetPixelColor(45 + (i-1) * jk, 45 + (j-1) * jg), "000000") <= 10 Then

检测(i, j) = 0 //检测此格子是不是被消除了,是就赋值为0,不是就为1

Else

检测(i, j) = 1 //为后面判断提供条件,如果是0那么此路通可以继续判断,否则判断两个格子颜色是否一样

End If

Next

Next

ReleaseCapture

For j = 1 To 12

For i = 1 To 8

If UTF8.InStr(1, 无用格子, i & "," & j) <> 0 Then //在连击后保存被消除了的两个格子信息,遍历时跳过以消除过的格子

Goto 循环

End If

If 检测(i, j) <> 1 Then //判断当前格子是不是可以消除

Goto 循环

End If

Call 中(i, j)

Rem 循环

Next

Next

Loop

//=====================回复一下给予我一点动力=====================

Function 中(i, j)

Dim xx,yy

//横 右

//获取右方向格子数据进行判断,是空的保存到“横向一步列表”然后进行后续两步的判断。 不是空的则判断两个格子是否一样

For xx = i+1 To 9

If 检测(xx, j) = 0 Then

横向一步列表 = 横向一步列表 & "|" & xx & "," & j

ElseIf 格子(i, j) = 格子(xx, j) Then

Tap (i-1) * jk + qdx, (j-1) * jg + qdy

Tap (i-1) * jk + qdx, (j-1) * jg + qdy

Tap (xx - 1) * jk + qdx, (j - 1) * jg + qdy

Tap (xx - 1) * jk + qdx, (j - 1) * jg + qdy

无用格子 = 无用格子 & "|" & xx & "," & j //寻找到格式格子进行消除,并把消除的两个格子信息保存到“无用格子”中

横向一步列表 = "s" //此时不需要后续两步判断直接跳出函数

Exit Function

ElseIf 格子(i, j) <> 格子(xx, j) Then

Exit For

End If

Next

Delay 延迟

//横 左

For xx = i-1 To 0 Step -1

If 检测(xx, j) = 0 Then

横向一步列表 = 横向一步列表 & "|" & xx & "," & j

ElseIf 格子(i, j) = 格子(xx, j) Then

Tap (i-1) * jk + qdx, (j-1) * jg + qdy

Tap (i-1) * jk + qdx, (j-1) * jg + qdy

Tap (xx - 1) * jk + qdx, (j - 1) * jg + qdy

Tap (xx - 1) * jk + qdx, (j - 1) * jg + qdy

无用格子 = 无用格子 & "|" & xx & "," & j

横向一步列表 = "s"

Exit Function

ElseIf 格子(i, j) <> 格子(xx, j) Then

Exit For

End If

Next

If 横向一步列表 <> "s" Then //横向第一步判断完后进行后续两步判断

临时列表 = 纵向列表(i, j, 横向一步列表) //这是第二步判断

Call 横向列表(i, j, 临时列表) //这是第三步判断

临时列表 = "s"

横向一步列表 = "s" //连连看只能拐弯两次,也就是三步,三步完成后所有列表初始化

End If

Delay 延迟

//=================================横向查找完成=================================

//竖 下

For yy = j+1 To 13

If 检测(i, yy) = 0 Then

纵向一步列表 = 纵向一步列表 & "|" & i & "," & yy

ElseIf 格子(i, j) = 格子(i, yy) Then

Tap (i-1) * jk + qdx, (j-1) * jg + qdy

Tap (i-1) * jk + qdx, (j-1) * jg + qdy

Tap (i-1) * jk + qdx, (yy-1) * jg + qdy

Tap (i-1) * jk + qdx, (yy-1) * jg + qdy

无用格子 = 无用格子 & "|" & i & "," & yy

纵向一步列表 = "s"

Exit Function

ElseIf 格子(i, j) <> 格子(i, yy) Then

Exit For

End If

Next

Delay 延迟

//竖 上

For yy = j-1 To 0 Step -1

If 检测(i, yy) = 0 Then

纵向一步列表 = 纵向一步列表 & "|" & i & "," & yy

ElseIf 格子(i, j) = 格子(i, yy) Then

Tap (i-1) * jk + qdx, (j-1) * jg + qdy

Tap (i-1) * jk + qdx, (j-1) * jg + qdy

Tap (i-1) * jk + qdx, (yy-1) * jg + qdy

Tap (i-1) * jk + qdx, (yy-1) * jg + qdy

无用格子 = 无用格子 & "|" & i & "," & yy

纵向一步列表 = "s"

Exit Function

ElseIf 格子(i, j) <> 格子(i, yy) Then

Exit For

End If

Next

If 纵向一步列表 <> "s" Then //这里跟横向一样

临时列表 = 横向列表(i, j, 纵向一步列表)

Call 纵向列表(i,j,临时列表)

临时列表 = "s"

横向一步列表 = "s"

End If

//=================================纵向查找完成=================================

Delay 延迟

End Function

Function 纵向列表(i,j,列表) //输入横向列表,得出来一条纵向可走格子,再调用横向列表函数即可完成查找

Dim ii,i_i,jj,j_j,暂时列表,无用格子,暂时列表ex,多步列表

多步列表 = "s"

If 列表 <> "s" Then

暂时列表 = Split(列表, "|")

For i_i = 1 To UBOUND(暂时列表)

暂时列表ex = Split(暂时列表(i_i), ",")//暂时列表ex(0)是空白格的x坐标,暂时列表ex(1)是空白格的y坐标

//=================================================================

//纵向上

If 暂时列表ex(1) <> 0 Then

For jj = 暂时列表ex(1)-1 To 0 step -1

If 检测(暂时列表ex(0), jj) = 0 Then

多步列表 = 多步列表 & "|" & 暂时列表ex(0) & "," & jj

纵向列表 = 多步列表

ElseIf 格子(i, j) = 格子(暂时列表ex(0), jj) Then

Tap (i - 1) * jk + qdx, (j - 1) * jg + qdy

Tap (i - 1) * jk + qdx, (j - 1) * jg + qdy

Tap (暂时列表ex(0) - 1) * jk + qdx, (jj - 1) * jg + qdy

Tap (暂时列表ex(0) - 1) * jk + qdx, (jj - 1) * jg + qdy

无用格子 = 无用格子 & "|" & 暂时列表ex(0) & "," & jj

多步列表 = "s"

纵向列表 = 多步列表

列表 = "s" //找到可消除的格子,所有保存的列表清空

Exit Function

ElseIf 格子(i, j) <> 格子(暂时列表ex(0), jj) Then

Exit For

End If

Next

End If

//=================================================================

//纵向下

If 暂时列表ex(1) <> 13 Then

For jj = 暂时列表ex(1)+1 To 13

If 检测(暂时列表ex(0), jj) = 0 Then

多步列表 = 多步列表 & "|" & 暂时列表ex(0) & "," & jj

纵向列表 = 多步列表

ElseIf 格子(i, j) = 格子(暂时列表ex(0), jj) Then

Tap (i - 1) * jk + qdx, (j - 1) * jg + qdy

Tap (i - 1) * jk + qdx, (j - 1) * jg + qdy

Tap (暂时列表ex(0) - 1) * jk + qdx, (jj - 1) * jg + qdy

Tap (暂时列表ex(0) - 1) * jk + qdx, (jj - 1) * jg + qdy

无用格子 = 无用格子 & "|" & 暂时列表ex(0) & "," & jj

多步列表 = "s"

纵向列表 = 多步列表

列表 = "s" //找到可消除的格子,所有保存的列表清空

Exit Function

ElseIf 格子(i, j) <> 格子(暂时列表ex(0), jj) Then

Exit For

End If

//=================================================================

Next

End If

Next

End If

End Function

Function 横向列表(i,j,列表) //输入纵向列表,得出来一条横向可走格子,再调用纵向列表函数即可完成查找

Dim ii,i_i,jj,j_j,暂时列表,无用格子,暂时列表ex,多步列表

If 列表 <> "s" Then

暂时列表 = Split(列表, "|")

For i_i = 1 To UBOUND(暂时列表)

暂时列表ex = Split(暂时列表(i_i), ",")//暂时列表ex(0)是空白格的x坐标,暂时列表ex(1)是空白格的y坐标

//=================================================================

//横向左

If 暂时列表ex(0) <> 0 Then

For ii = 暂时列表ex(0)-1 To 0 step -1

If 检测(ii, 暂时列表ex(1)) = 0 Then

多步列表 = 多步列表 & "|" & ii & "," & 暂时列表ex(1)

横向列表 = 多步列表

ElseIf 格子(i, j) = 格子(ii, 暂时列表ex(1)) Then

Tap (i - 1) * jk + qdx, (j - 1) * jg + qdy

Tap (i - 1) * jk + qdx, (j - 1) * jg + qdy

Tap (ii - 1) * jk + qdx, (暂时列表ex(1) - 1) * jg + qdy

Tap (ii - 1) * jk + qdx, (暂时列表ex(1) - 1) * jg + qdy

无用格子 = 无用格子 & "|" & ii & "," & 暂时列表ex(1)

多步列表 = "s"

横向列表 = 多步列表

列表 = "s" //找到可消除的格子,所有保存的列表清空

Exit Function

ElseIf 格子(i, j) <> 格子(ii, 暂时列表ex(1)) Then

Exit For

End If

Next

End If

//=================================================================

//横向右

If 暂时列表ex(0) <> 9 Then

For ii = 暂时列表ex(0)+1 To 9

If 检测(ii, 暂时列表ex(1)) = 0 Then

多步列表 = 多步列表 & "|" & ii & "," & 暂时列表ex(1)

横向列表 = 多步列表

ElseIf 格子(i, j) = 格子(ii, 暂时列表ex(1)) Then

Tap (i - 1) * jk + qdx, (j - 1) * jg + qdy

Tap (i - 1) * jk + qdx, (j - 1) * jg + qdy

Tap (ii - 1) * jk + qdx, (暂时列表ex(1) - 1) * jg + qdy

Tap (ii - 1) * jk + qdx, (暂时列表ex(1) - 1) * jg + qdy

无用格子 = 无用格子 & "|" & ii & "," & 暂时列表ex(1)

多步列表 = "s"

横向列表 = 多步列表

列表 = "s" //找到可消除的格子,所有保存的列表清空

Exit Function

ElseIf 格子(i, j) <> 格子(ii, 暂时列表ex(1)) Then

Exit For

End If

Next

End If

//=================================================================

Next

End If

End Function

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。