当前位置: 首页 > news >正文

Java版本的基于计算机视觉的跃动小子保卫主公自动通关计划之整体思路篇

系列文章

Java版本的基于计算机视觉的跃动小子保卫主公自动通关计划之图片分割篇
图片分类篇,执行计划生成篇,执行篇等后续篇章持续更新中,欢迎关注

文章目录

  • 系列文章
  • Java版本的基于计算机视觉的跃动小子保卫主公自动通关计划之整体思路篇
  • 构建二维数组
  • 构建消除时形态
    • 7个元素的消除时形态
    • 6个元素的消除时形态
    • 5个元素的消除时形态
    • 4个元素的消除时形态
    • 3个元素的消除时形态
  • 获取消除前形态
  • 获取最小区域
  • 计算最小步数和移动过程
  • 评估最佳执行计划
  • 执行计划
  • 核心技术
  • 总结

Java版本的基于计算机视觉的跃动小子保卫主公自动通关计划之整体思路篇

这里采用逆向思维,先得到所有消除时形态,再推演可能的消除前形态;计算从消除前形态到消除形态的最小移动步数和记录详细移动过程;匹配可消除形态,匹配成功按照之前记录的详细步骤移动即可还原到消除时形态

构建二维数组

将保卫主公区域分割成6*6=36个小图,对小图分类,可以使用直方图,图片指纹等计算图片相似度,最终构建成一个二维数组
在这里插入图片描述

构建消除时形态

在保卫主公中可消除形态有3个元素,4个元素,5个元素,6个元素,7个元素(应该是可消除元素最多的形态)

7个元素的消除时形态

int[][] p7 = {{0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0},{0, 1, 1, 1, 1, 1},{0, 0, 0, 1, 0, 0},{0, 0, 0, 1, 0, 0},{0, 0, 0, 0, 0, 0},
};

6个元素的消除时形态

int[][] p6_1 = {{0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0},{0, 0, 1, 1, 1, 1},{0, 0, 0, 1, 0, 0},{0, 0, 0, 1, 0, 0},{0, 0, 0, 0, 0, 0},
};

5个元素的消除时形态

int[][] p5_1 = {{0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0},{0, 0, 0, 1, 1, 1},{0, 0, 0, 1, 0, 0},{0, 0, 0, 1, 0, 0},{0, 0, 0, 0, 0, 0},
};
int[][] p5_2 = {{0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0},{0, 1, 1, 1, 1, 1},{0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0},
};
int[][] p5_3 = {{0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0},{0, 0, 1, 1, 1, 0},{0, 0, 0, 1, 0, 0},{0, 0, 0, 1, 0, 0},{0, 0, 0, 0, 0, 0},
};

4个元素的消除时形态

int[][] p4_1 = {{0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0},{0, 0, 1, 1, 1, 1},{0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0},
};

3个元素的消除时形态

int[][] p3_1 = {{0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0},{0, 0, 1, 1, 1, 0},{0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0},
};

以及对于的旋转90°,180°,270°,水平翻转,垂直翻转

获取消除前形态

对消除形态移动一步,两步,三步,四步…获取可能的消除前形态的所有组合

比如7个元素移动1步的消除前形态之一为

int[][] p7 = {{0, 0, 0, 0, 0, 0},{0, 0, 0, 1, 0, 0},{0, 1, 1, 0, 1, 1},{0, 0, 0, 1, 0, 0},{0, 0, 0, 1, 0, 0},{0, 0, 0, 0, 0, 0},
};

获取最小区域

获取可消除的最小区域和对应的消除时的最小区域,以7个元素移动一步为例,可消除区域的最小区域为

int[][] p7 = {{0, 0, 1, 0, 0},{1, 1, 0, 1, 1},{0, 0, 1, 0, 0},{0, 0, 1, 0, 0}
};

对应的消除时形态为

int[][] p7 = {{0, 0, 0, 0, 0},{1, 1, 1, 1, 1},{0, 0, 1, 0, 0},{0, 0, 1, 0, 0}
};

计算最小步数和移动过程

计算从可消除形态到消除形态的最小步数并记录具体的移动过程,此时就得到了一系列执行计划

评估最佳执行计划

  1. 判断步数是不是为1,要不要使用箱子

  2. 要不要合成箱子(箱子3个合成比较划算,所以需要单独计算)

  3. 要不要丢张飞与木头

  4. 用执行计划中的消除前形态去6*6的二维数组中匹配(核心算法为在大数组中找小数组),得到一系列可执行计划,每个计划的消耗的步数和获取的步数不一样,评估出最佳执行计划

    最终获得的步数=获得步数-消耗步数

    获得步数=(消除步数-3)*3的x次方

    x为消除元素的等级,材料为0

执行计划

利用robot控制鼠标移动来执行最佳执行计划

核心技术

  1. 图片分割
  2. 图片相似度计算
  3. 生产计划时的算法
  4. 识别步数时的文本识别
  5. Robot类的一些操作

总结

通过构建不同的消除形态、推演消除前形态、评估最优消除计划,并结合自动化执行,这一过程可以为消消乐游戏生成最优的走法策略,帮助玩家高效达成目标。


http://www.mrgr.cn/news/60145.html

相关文章:

  • git命令报错:fatal: not a git repository (or any of the parent directories): .git
  • 了解AIGC——自然语言处理与生成
  • MySQL 安装及用户管理
  • IntelliJ IDEA 查看类class的结构Structure轮廓outline窗口, 快捷键是Alt+7
  • 数据结构 ——— 用队列实现栈
  • [NeetCode 150] Minimum Window With Characters
  • 创建和管理IPAM
  • Kubernetes:(二)K8Sv1.20二进制部署
  • Lesson12---queue
  • 字节跳动在欧洲设立AI研发中心
  • 如何将 Excel 数据转换为 SQL 脚本:基于 Java 的全面解析
  • MySQL Workbench安装教程(Windows)
  • R语言生物群落(生态)数据统计分析与绘图
  • JAVA基础:IO流 (学习笔记)
  • 【题解】—— LeetCode一周小结43
  • 关于我的数据库——MySQL——第五篇
  • 【隐私计算篇】全同态加密应用场景案例(隐私云计算中的大模型推理、生物识别等)
  • 详细分析Pytorch中的permute基本知识(附Demo)
  • 一文读懂高考志愿专业名词,让你的志愿填报不再迷茫
  • 【Spring知识】Spring Starter内核spring.factories的工作机制
  • [专有网络VPC]ECS安全组配置案例
  • 单纯形线性规划
  • 合合信息智能文档处理百宝箱:强力驱动,加速文档类应用研发进程
  • 开源自动化测试工具Playwright
  • C#与C++交互开发系列(十四):C++中STL容器与C#集合传递的形式
  • python函数-18