algorithm - 为尖峰时刻游戏生成随机拼图板

标签 algorithm language-agnostic artificial-intelligence game-engine puzzle

如果您不熟悉它,该游戏由一系列不同大小的汽车组成,水平或垂直设置在具有单个导出的 NxM 网格上。 每辆车都可以按照设定的方向前进/后退,只要没有另一辆车挡住它。你永远无法改变汽车的方向。 有一辆特别的车,通常是红色的。它设置在导出所在的同一行,游戏的目标是找到一系列 Action (一个 Action - 将汽车向后或向前移动 N 步),让红色汽车驶出迷宫.

我一直在思考如何为这个问题生成实例,根据解决棋盘的最小数量生成难度级别。

有什么算法或策略可以做到这一点吗?

提前致谢!

Example of Rush hour puzzle

最佳答案

给定汽车的位置,问题中给出的板最多有 4*4*4*5*5*3*5 = 24.000 种可能的配置。

具有 24.000 个节点的图对于今天的计算机来说并不是很大。所以一个可能的方法是

  • 构造所有位置的图(节点是位置,边是移动),
  • 找到所有节点的获胜步数(例如使用 Dijkstra )和
  • 选择距离目标较远的节点。

关于algorithm - 为尖峰时刻游戏生成随机拼图板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18603644/

相关文章:

c++ - 使用辅助存储检查基于磁盘的合并排序的性能

algorithm - 使用带有 2 个参数的谓词进行过滤

algorithm - 如何测试给定的 BSP 树是否最优?

artificial-intelligence - 神经网络项目思路

java - 该代码片段的复杂性是多少?

string - 如何检查给定的字符串是否是回文?

language-agnostic - 为什么只可以添加功能语言列表?

algorithm - 如何找到最远的两个点?

javascript - 使用 Brainjs 训练输出不在特定范围内

java - 顺序交叉 (OX) - 遗传算法