推箱子求解器
推箱子游戏开发背景
推箱子小游戏纯属个人业余时间用来练手的小项目,完全是兴趣使然。通过在网上查阅资料,梳理游戏核心逻辑,选择自己擅长的编程语言及框架,最终通过编码调试将游戏做了出来。具体实现过程记录在《益智游戏开发-推箱子》。
推箱子游戏思维训练
推箱子游戏首创于1981年,距今已有大量的经典关卡被设计出来。普通人在进行游戏时,会明显感觉到脑子不够用。确实,这款游戏规则虽简单,却十分考验脑力和思维。《推箱子攻略》系列视频基于具体的关卡,介绍了一些破解游戏的思维,但面对成百上千的超难关卡,还是要不断训练、加强脑力,才能在游玩时显得游刃有余。
自己开发求解器
在使用人脑破解了一些关卡之后,我不禁思考,有没有更轻松的过关方式。带着这个想法,我开始了推箱子游戏求解器的开发之路。
通过在网上查找资料以及询问AI助手,我发现使用DFS或BFS算法在理论上是能够破解推箱子游戏的,但较高的时间复杂度或空间复杂度,也使得开完出来后实际能破解的关卡特别少。
在替换使用基于启发式搜索的A*算法之后,能破解的关卡虽然变多了但破解效果也十分有限。接着我又在代码中添加了死锁场景剪枝、跳过重复场景等优化逻辑,破解效率虽提高不少,但远达不到实用的程度。特别是出现了很多人脑中度思索后能破解的关卡,使用求解器无法求解的情况,让我在自己开发求解器这个方向上产生动摇。
开源求解器
最终我调整方向,开始在网上查找开源求解器,最终找到了一款效果很不错的sokoban-rs求解器,这款求解器使用Rust语言开发,破解效率特别高,同时提供了可视化的游戏界面,十分好用。
sokoban-rs求解器除了内置的大量关卡外,在游戏界面还支持从剪切板导入关卡数据。我在自己的推箱子游戏中加入了关卡数据转换导出的功能后,借助求解器能轻松过关。
至此,从容破解任意推箱子游戏关卡的目标终于达成。
破解利器
展望未来
在人工智能不断加速发展,AI应用喷涌爆发的当下,我相信,在不久的将来,借助成熟的AI算力,类似于“推箱子游戏破解”这类问题会被轻松解决。在AI日渐强大的今天,人类似乎已经不需要全程参与问题的“定义-思考-解决-完善”整个过程,而是变成了“问题的定义者”和“完善方向的制定者”,也许这才是与AI共存的方式。
评论区留言准则:
1. 本评论区禁止传播封建迷信、吸烟酗酒、低俗色情、赌博诈骗等任何违法违规内容。
2. 当他人以不正当方式诱导打赏、私下交易,请谨慎判断,以防人身财产损失。
3. 请勿轻信各类招聘征婚、代练代抽、私下交易、购买礼包码、游戏币等广告信息,谨防网络诈骗。