我需要实现扫雷求解器。我已经开始实现基于规则的代理。我已经实施了某些规则。我有一个启发式函数,用于为正在处理的当前单元格(包含周围单元格的信息)选择最佳匹配规则。因此,对于每个选定的单元格,它可以决定8个周围单元格打开它们,标记它们或什么也不做。我是说。此时,智能体将一些显露的细胞作为输入,并决定如何处理周围的细胞(目前,智能体不知道如何决定处理哪个细胞)。
我的问题是,要实现什么算法来决定处理哪个细胞?
假设,对于第一步,智能体将显示一个角落单元(或者其他一些单元,根据第一步的某些规则)。在那之后做什么?
我知道我需要实现某种搜索。我知道许多搜索算法(BFS,DFS,A-STAR和其他),这不是问题,我只是不明白我如何在这里使用这些搜索。
我需要用人工智能的原理来实现它:一种现代的方法。
发布于 2012-07-07 05:09:15
BFS、DFS和A*在这里可能不适用。当你对世界有了完整的了解,如果你正在尝试计划一个行动路线,这些算法是很好的。在扫雷游戏中,你没有这样的知识。
相反,我建议尝试使用本书第三节中的一些逻辑推理技术,特别是使用SAT或第10章中的技术。这将让您使用诸如“下面的八个方块中的一个是地雷,下面的八个方块中恰好有两个是地雷”这样的事实来得出关于地雷在哪里的结论。在每个步骤中这样做将帮助您识别地雷在哪里,或者意识到在继续之前您必须猜测。
希望这能有所帮助!
发布于 2015-01-03 05:01:51
我移植了这个(在一些帮助下)。下面是它的工作链接:http://robertleeplummerjr.github.io/smartSweepers.js/。这是一个项目:https://github.com/robertleeplummerjr/smartSweepers.js
玩得开心!
https://stackoverflow.com/questions/11369358
复制相似问题