昨晚老婆在家玩游戏,遇到一个关卡,挺有意思,找不到图了,姑且文字描述一下。
- 游戏模型:[1, 1, 1, 0, -1, -1, -1]
- 规则:1或-1可以移动到其旁边0的位置,或者移动到间隔一个障碍的下一个0的位置;1只能向右移动,-1只能向左移动
- 目标:所有-1移动到左边,1移动到右边,即最后状态为[-1, -1, -1, 0, 1, 1, 1]
老婆尝试了好几次无果,给我试试。一看这个游戏,就想到可以用回溯搜索算法来找答案。于是打开电脑开始尝试,得到如下js代码:
1 |
|
最终找到的步骤如下:
1 | path found: 2,4,5,3,1,0,2,4,6,5,3,1,2,4,3 |