for (var ii:uint=0; ii<arr.length; ii++) { arr = arr.concat(searchAroundNear(bubbleArray,getRow(arr[ii]),getCol(arr[ii]))); for (var iii:int = arr.length-1; iii>-1; iii--) { if (!(arr[iii] is qiu)) { arr.splice(iii,1); } } for(var g:int=0,temp:Array=[];g<arr.length;g++){; if (temp.indexOf(arr[g])==-1) { temp.push(arr[g]); } } arr=temp; } dropLenArr.push(arr.length); if (dropLenArr[dropLenArr.length-1] == dropLenArr[dropLenArr.length-2]) { return arr; } else { search(arr); return arr; } } return arrayD; } }
时间: 2024-04-20 20:27:22 浏览: 10
这段代码是一个递归函数,用于在泡泡消除游戏中找到与指定泡泡相邻的所有相同颜色的泡泡。具体来说,该函数的输入参数为一个数组arr,表示要查找的泡泡集合;输出结果为一个数组,表示与输入数组中的泡泡相邻的所有相同颜色的泡泡。函数的主要实现流程如下:
1. 遍历数组arr中的所有泡泡,使用searchAroundNear()函数查找与每个泡泡相邻的所有相同颜色的泡泡,并将结果添加到一个新数组中。
2. 删除新数组中不是泡泡对象的元素。
3. 将新数组中重复的泡泡对象去重。
4. 将新数组作为输入参数递归调用search()函数,直到找到所有与输入数组中的泡泡相邻的所有相同颜色的泡泡。
5. 如果最新一次查找到的相邻泡泡的数量与前一次查找到的相邻泡泡的数量相同,则说明已经找到了所有相邻的泡泡,返回最终结果;否则,继续查找相邻泡泡。
需要注意的是,该函数会将每次查找到的相邻泡泡的数量记录到一个数组dropLenArr中,以便判断是否已经找到了所有相邻的泡泡。此外,该函数使用了一些辅助函数,如getRow()、getCol()和searchAroundNear(),这些函数的具体实现不在本段代码中。
相关问题
or (var r:uint=0; r<bubbleArray.length; r++) { for (var c:uint=0; c<TOTALCOL; c++) { if (bubbleArray[r][c] is qiu) { bubbleArray[r][c].y +=60; } } }
这段代码是一个嵌套的for循环,用于将二维数组bubbleArray中所有类型为qiu的元素的y坐标值增加60。具体流程如下:
1. 外层循环使用变量r遍历bubbleArray数组的所有行。
2. 内层循环使用变量c遍历当前行中的所有列。
3. 如果bubbleArray[r][c]是一个类型为qiu的对象,则将该对象的y坐标值增加60。
可以看出,这段代码旨在将二维数组bubbleArray中所有的qiu对象向下移动一行,使它们在界面上看起来像是下落了一格。其中,qiu对象可能是游戏中的一个泡泡或球体等元素,具体取决于游戏的实现。
for (var i:uint=0; i<temDropArr.length; i++) { if (temDropArr[i] && getRow(temDropArr[i]) == 0) { var arrayT:Array = searchAround(bubbleArray[0][getCol(temDropArr[i])]); break; } }
这段代码看起来像是用于游戏开发中的泡泡消除游戏,具体来说,它通过循环遍历名为temDropArr的数组,找到第一个在第一行的元素,并调用名为searchAround的函数进行周围元素的搜索。在搜索完成后,将结果存储在名为arrayT的数组中。其中getRow和getCol是用于获取元素所在行和列的函数。