Algorithm 为高峰时段游戏生成随机拼图板
如果你不熟悉它,这个游戏由一系列大小不同的汽车组成,水平或垂直设置在一个NxM网格上,该网格只有一个出口。 每辆车都可以在设定的方向上向前/向后移动,只要另一辆车没有挡住它。你永远不能改变汽车的方向。 有一辆特别的车,通常是红色的。它被设置在出口所在的同一排,游戏的目标是找到一系列的动作(一个动作-移动一辆车N步后退或前进),让红色的车驶出迷宫 我一直在思考如何为这个问题生成实例,根据解决电路板的最小数量生成难度级别 有什么算法或策略可以做到这一点吗 提前谢谢Algorithm 为高峰时段游戏生成随机拼图板,algorithm,language-agnostic,artificial-intelligence,game-engine,puzzle,Algorithm,Language Agnostic,Artificial Intelligence,Game Engine,Puzzle,如果你不熟悉它,这个游戏由一系列大小不同的汽车组成,水平或垂直设置在一个NxM网格上,该网格只有一个出口。 每辆车都可以在设定的方向上向前/向后移动,只要另一辆车没有挡住它。你永远不能改变汽车的方向。 有一辆特别的车,通常是红色的。它被设置在出口所在的同一排,游戏的目标是找到一系列的动作(一个动作-移动一辆车N步后退或前进),让红色的车驶出迷宫 我一直在思考如何为这个问题生成实例,根据解决电路板的最小数量生成难度级别 有什么算法或策略可以做到这一点吗 提前谢谢 一种可能的方法是反向创建它 生成一
一种可能的方法是反向创建它
- 在某处加一辆车
- 拆下一辆车(我想这会使电路板更容易)
- 使汽车垂直于行驶方向移动
- 在同一车道内交换车辆
(aaa..bb.)->(bb..aaa.)
爬山/最陡的上升可能是不好的,因为分支因子很大。你可以尝试对可能相邻的一组电路板进行二次抽样,也就是说,不看所有的电路板,只看几个随机的电路板。考虑到汽车的位置,问题中给出的电路板最多有
4*4*4*5*5*3*5=24.000
可能的配置
对于今天的计算机来说,一个有24.000个节点的图不是很大。因此,一种可能的方法是
- 构建所有位置的图形(节点是位置,边是移动)
- 查找所有节点的获胜移动数(例如使用)和
- 选择距离目标较远的节点
添加游戏的图像怎么样?哦,当然!我刚才补充说。将引起兴趣。没有其他方法吗?@未知,确实有无限多的其他方法。这是怎么回事?我已经在创建随机板,我正在使用BFS算法,但我没有得到预期的结果。。。随机拼图太简单了,我不是在创建问题的硬实例。但是,使用解算器来获得最佳解并不意味着如何创建硬实例,你知道吗?无论如何,非常感谢!=)我明白你的意思。我需要在硬级别创建400个谜题,这就是为什么我希望它能更快。这种方法确保解决方案的移动次数最少?@Unknown我不理解你的问题。这种方法意味着您可以完全解决和分析一次(成功)放置车辆所产生的问题。您将知道解决每个可到达配置所需的最佳移动次数。如何创建包含所有可能位置的图?问题不是解决电路板。这是关于生成它们的。@通配符为了判断生成的电路板有多困难,您必须解决它。答案描述了一种方法:(1)解决电路板问题,(2)从所有可到达位置中选择一个硬启动位置。