/**

* 搜索,返回最优点。

*

* @return

*/

public Point search(int x, int y) {

return LianlianKan.twoCornerSearch(imageCodes, x, y);

}

/**

* 连连看搜索算法。

*

* @author Geek_Soledad

*/

public static class LianlianKan {

/**

* 水平搜索

*

* @param datas

*            数组

* @param row

*            对比数值所在的行

* @param col

*            对比数值所在的列

* @param atRow

*            进行水平搜索时所在的行

* @return

*/

private static Point moveHorizon(int[][] datas, int row, int col, int atRow, int atCol) {

// 再拐左

for (int k = atCol - 1; k >= 1; k--) {

if (datas[atRow][k] == datas[row][col]) {

return new Point(atRow, k);

} else if (datas[atRow][k] != 0) {

break;

}

}

// 再拐右

for (int k = atCol + 1; k

if (datas[atRow][k] == datas[row][col]) {

return new Point(atRow, k);

} else if (datas[atRow][k] != 0) {

break;

}

}

return null;

}

/**

* 竖直搜索

*

* @param datas

*            数组

* @param row

*            对比数值所在的行

* @param col

*            对比数值所在的列

* @param atCol

*            进行水平搜索时所在的列

* @return

*/

private static Point movePortrait(int[][] datas, int row, int col, int atRow, int atCol) {

// 再拐上

for (int k = atCol - 1; k >= 1; k--) {

if (datas[k][atCol] == datas[row][col]) {

return new Point(k, atCol);

} else if (datas[k][atCol] != 0) {

break;

}

}

// 再拐下

for (int k = atCol + 1; k

if (datas[k][atCol] == datas[row][col]) {

return new Point(k, atCol);

} else if (datas[k][atCol] != 0) {

break;

}

}

return null;

}

/**

* 两个角搜索

*

* @param datas

*            数组

* @param x

*            纵坐标

* @param y

*            横坐标

* @return

*/

public static Point twoCornerSearch(int[][] datas, int x, int y) {

// 向左进行搜索

for (int i = y - 1; i >= 0; i--) {

// 向左进行直线搜索

if (datas[x][i] == datas[x][y]) {

return new Point(x, i);

} else if (datas[x][i] != 0) {

break;

}

// 向左,然后拐上进行直角搜索

for (int j = x - 1; j >= 0; j--) {

if (datas[j][i] == datas[x][y]) {

return new Point(j, i);

} else if (datas[j][i] != 0) {

break;

}

// 向左,拐上,再水平搜索

Point point = moveHorizon(datas, x, y, j, i);

if (point != null) {

return point;

}

}

// 向左,然后拐下进行直角搜索

for (int j = x + 1; j

if (datas[j][i] == datas[x][y]) {

return new Point(j, i);

} else if (datas[j][i] != 0) {

break;

}

// 向左,拐下,再水平搜索

Point point = moveHorizon(datas, x, y, j, i);

if (point != null) {

return point;

}

}

}

// 横向往右搜索

for (int i = y + 1, length = CODE_COL; i

// 向右直线搜索

if (datas[x][i] == datas[x][y]) {

return new Point(x, i);

} else if (datas[x][i] != 0) {

break;

}

// 向右,然后拐上进行直角搜索。

for (int j = x - 1; j >= 0; j--) {

if (datas[j][i] == datas[x][y]) {

return new Point(j, i);

} else if (datas[j][i] != 0) {

break;

}

// 向右,拐上,再水平搜索

Point point = moveHorizon(datas, x, y, j, i);

if (point != null) {

return point;

}

}

// 向右,然后拐下进行直角搜索

for (int j = x + 1; j

if (datas[j][i] == datas[x][y]) {

return new Point(j, i);

} else if (datas[j][i] != 0) {

break;

}

// 向右,拐下,再水平搜索。

Point point = moveHorizon(datas, x, y, j, i);

if (point != null) {

return point;

}

}

}

// 纵向往上搜索

for (int i = x - 1; i >= 0; i--) {

if (datas[i][y] == datas[x][y]) {

return new Point(i, y);

} else if (datas[i][y] != 0) {

break;

}

// 向上,然后拐左进行直角搜索。

for (int j = y - 1; j >= 0; j--) {

if (datas[i][j] == datas[x][y]) {

return new Point(i, j);

} else if (datas[i][j] != 0) {

break;

}

// 向上,拐左,再竖直搜索

Point point = movePortrait(datas, x, y, i, j);

if (point != null) {

return point;

}

}

// 向上,然后拐右进行直角搜索

for (int j = y + 1; j

if (datas[i][j] == datas[x][y]) {

return new Point(i, j);

} else if (datas[i][j] != 0) {

break;

}

// 向上,拐右,再竖直搜索

Point point = movePortrait(datas, x, y, i, j);

if (point != null) {

return point;

}

}

}

// 纵向往下搜索

for (int i = x + 1, length = CODE_ROW; i

if (datas[i][y] == datas[x][y]) {

return new Point(i, y);

} else if (datas[i][y] != 0) {

break;

}

// 向下,然后拐左进行直角搜索。

for (int j = y - 1; j >= 0; j--) {

if (datas[i][j] == datas[x][y]) {

return new Point(i, j);

} else if (datas[i][j] != 0) {

break;

}

// 向下,拐右,再竖直搜索

Point point = movePortrait(datas, x, y, i, j);

if (point != null) {

return point;

}

}

// 向下,然后拐右进行直角搜索

for (int j = y + 1; j

if (datas[i][j] == datas[x][y]) {

return new Point(i, j);

} else if (datas[i][j] != 0) {

break;

}

// 向下,拐右,再竖直搜索

Point point = movePortrait(datas, x, y, i, j);

if (point != null) {

return point;

}

}

}

return null;

}

}

利用电脑玩android版天天连萌刷高分 二,利用电脑玩Android版“天天连萌”刷高分(三)...相关推荐

  1. 刺激战场电脑版android,逍遥安卓模拟器像端游操控玩《绝地求生刺激战场》电脑版...

    <绝地求生刺激战场>电脑版可以像绝地求生端游一样操控吗?可以在电脑上像绝地求生端游一样用鼠标键盘玩吗?逍遥安卓模拟器是目前小编测试过电脑上玩<绝地求生刺激战场>手游还原绝地求生 ...

  2. n9009+android+4.4.2,三星N9009 (Galaxy Note 3 电信版 Android 4.4)救砖教程 救砖包 刷回官方系统支持OTA升级...

    奇兔ROM市场小编在这给大家分享一下三星N9009 (Galaxy Note 3 电信版 Android 4.4)救砖教程和三星N9009 (Galaxy Note 3 电信版 Android 4.4 ...

  3. 锤子T1(Smartisan T1 4G)版刷成3G版,即sm705运行sm701的CM11 Android 4.4.4ROM

    对于喜欢折腾的人来说买锤子T系列真实不明智的选择,但是我是罗粉,对于锤子安卓内核版本的不升级政策很是不满,我承认Smartisan OS确实很好用,用了iOS后才知道锤子的系统真好,高效贴心真心替用户 ...

  4. 锤子T1(Smartisan T1 4G)版刷成3G版,即sm705运行sm701的CM11 Android 4.4.4ROM 1

    对于喜欢折腾的人来说买锤子T系列真实不明智的选择,但是我是罗粉,对于锤子安卓内核版本的不升级政策很是不满,我承认Smartisan OS确实很好用,用了iOS后才知道锤子的系统真好,高效贴心真心替用户 ...

  5. Android 13 第一个开发者版本来了,网友直呼:Android 12 还没玩透!

    整理 | 苏宓 出品 | CSDN(ID:CSDNnews) 2 月 10 日,Google 宣布 Android 13 首个预览版面向开发者开放,此版本重点聚焦隐私和安全.提供开发者生产力.应用兼容 ...

  6. 自走棋电脑版_手游版《自走棋》上线试玩

    自走棋测试服最近已经陆续开放内部测试,经过了一番试玩之后,发现和电脑版还是有一些区别,大体上还是能够保持一致的很期待公测之后的版本.例如10金币吃1利息,连胜奖励,连败奖励,升级经验5金币,刷新商店2 ...

  7. 魅族 刷机android 6.0,乐视X800+安卓6.0.1 魅族Flyme6刷机包 最新6.7.12.29R版 紫火20180510更新...

    本包是乐视X800+适配版,属于安卓6.0系列,论坛的另外一个Flyme是5.0版本的,大家区别开来,不要胡乱互刷,否则会出现问题, 安卓6.0系统的flyme正式停止更新.:请关注安卓7.1的Fly ...

  8. android刷windows教程视频,蓝魔i9s安卓版刷Windows 8.1系统固件视频教程

    本文介绍的蓝魔I9s安卓版刷windows 8.1系统固件的方法主要来自蓝魔贴吧"蓝魔i9s Windows8 with Bing固件"一文,不过因为视频也是第一次刷机制作,在中途 ...

  9. 百度android模拟器下载地址,百度手机助手电脑版怎么下载 安卓模拟器电脑版下载地址...

    最近在朋友圈非常流行的手游百度手机助手已经开放下载了,不过不少玩家都觉得手机上玩百度手机助手手机屏幕太小,操作不方便,画面不够清晰炫酷.那么如何在电脑上运行百度手机助手这款手游呢?小编现在就推荐一款百 ...

  10. 微信Mac 3.0.0内测版上线!终于可以用电脑刷朋友圈了!!

    微信Mac版客户端终于支持查看朋友圈啦!!!微信是一款运行在OS X上的 社交聊天工具,微信mac版支持跨通信运营商,跨操作系统平台通过网络快速发送免费语音短信.视频.图片和文字,还能发送各种类型的文 ...

最新文章

  1. Vivado之增量编译的实现
  2. 街头抓拍之一:酷似福克纳的老头
  3. 第一个被赋予公明身份的机器人_一文读懂机器人的“眼睛”
  4. HTML5效果:实现树叶飘落
  5. android Frame-By-Frame Animations(一帧一帧地播放动画)的使用
  6. 我有一箱01年的茅台酒现在值多少钱
  7. 【POJ 2456】【二分答案】Aggressive cows(暑假 No.1)
  8. 仪器仪表的标定、检定、校准、校验的区别【图文详解】
  9. html查看器缩字数,在线字数统计工具-统计字符字节汉字数字标点符号-计算word文章字数-使用帮助-字的区别...
  10. table 表格边框线去重
  11. ETS88 获取TesterID
  12. 2021iOS最新面试总结
  13. 用计算机唱你笑起来真好看,你笑起来真好看简谱-李昕融/樊桐舟/李凯稠演唱-孙世彦制谱...
  14. 怎么把wps转换成word
  15. 计算机专业可以从事测绘行业吗,测绘类专业就业前景怎么样
  16. Fluent动网格【8】:网格节点运动案例
  17. 全方位检测外径轧钢测径仪
  18. spring中自定义对象交给spring容器管理的4种方式
  19. java情书_java情书《面向对象》
  20. 给屏幕摆拍~~~很好用的Linux屏幕截图工具scrot

热门文章

  1. Unity_游戏核心机制分析
  2. 用英语描述人的精辟词语
  3. python 实现 画图器_按钮实现Python--绘图工具matplotlib的使用
  4. 学会这5招优化技巧,让你的 iPhone 更好的服务你
  5. 20155224聂小益的Linux学习
  6. 2021美赛C题(大黄蜂传播规律和目击准确性研究)——赛题解读解题思路
  7. 计算机网络施工资质,弱电工程是什么?弱电工程施工资质级别标准
  8. idea设置注释的颜色
  9. 学习Qss--背景属性
  10. linux内核源码实战_3.2理解设备驱动和文件系统