问题标签 [sliding-tile-puzzle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
33626 浏览

algorithm - 解决 8 谜题的有效方法是什么?

8 拼图是一个有 9 个位置的方板,由 8 个编号的瓷砖和一个间隙填充。在任何时候,与间隙相邻的瓷砖都可以移动到间隙中,从而创建新的间隙位置。换句话说,间隙可以与相邻(水平和垂直)的瓷砖交换。游戏的目标是从任意配置的图块开始,然后移动它们以使编号的图块按升序排列,或者围绕棋盘周边排列,或者从左到右排列,左上角为 1 -手的位置。

8 拼图

我想知道什么方法可以有效地解决这个问题?

0 投票
1 回答
5415 浏览

java - 通过 BFS 解决 8 个难题

我听说可以通过 BFS 解决 8-puzzle 问题,但我不明白如何解决。我想知道我需要从这样的板上获得的中间步骤:

BFS 搜索的中间步骤是“级别”吗?

顺便说一句,这是基本功课,我不在乎最优性。

0 投票
1 回答
2998 浏览

java - 试图解决 15 谜题,OutOfMemoryError

有什么方法可以优化此代码以不耗尽内存吗?

0 投票
1 回答
1734 浏览

prolog - 为什么“错误:超出全局堆栈”

0 投票
3 回答
11073 浏览

c++ - 使用 C++ 使用 A* 算法求解 n 谜题

我正在A* algorithm用 C++ 来解决n-puzzle 问题
我试图在这个链接中实现伪代码。
总成本(F=H+G)的计算是“成本取决于错位瓷砖的数量(启发式)+从初始状态(G)开始的步数”。AStar下面给出函数 的算法。

问题是,我遇到了无限循环的情况。我该如何解决这个问题?

PS:如果需要,我可以给出 中使用的其他功能的实现AStar

任何帮助,将不胜感激。

}

0 投票
2 回答
215 浏览

c++ - 错误地访问二维数组中的值

我有一个二维数组,例如:

然后我用来自 cin 的输入填充数组,这工作正常。然而,当我通过 double for 循环迭代访问数组中的值时,我得到了不正确的值。

我已经打印出这些值,因为我正在将它们添加到以下内容中:

例如,我正在存储 ints {{1,2,3}, {4,5,6}, {7,8,0}},但是当我去访问它们时,我得到了 values {{49,50,51}, {52,53,54}, {55,56,48}}

我有一种感觉,这是微不足道的,我只是不知道在哪里看。

0 投票
2 回答
334 浏览

java - Java 中的队列 - 我的实现有什么问题,我可以使用什么?

我正在尝试进行广度优先搜索来解决正方形移动难题(将正方形移动到空白空间直到解决的难题)。我的广度优先算法使用队列。不幸的是,它似乎只适用于 UP 和 DOWN 情况,而不适用于 LEFT 或 RIGHT 情况:

我认为这是我的队列的问题,其实现如下。我的队列有问题,还是另一个问题?Java API 是否有我可以使用的队列类?

下面是复制方法:

0 投票
2 回答
1461 浏览

java - 搜索算法(DFS、BFS、A 星等)。如何在不“冻结”的情况下更新 GUI(更新状态)?

我的问题很简单。

假设我正在执行算法“A 星”(使用启发式函数计算下一个要访问的状态的搜索算法)。

我想在网格中显示更新(我会将其应用于 8 谜题)。我该怎么做?我希望更改清晰可见..但根据我的经验,如果我只是做类似Grid[6].showValue(newValue)GUI 之类的事情,只会“待机”。

我确信这可以通过多线程来完成(也许?)但是有没有更简单的方法?

如果可能,还有一个非常简单的问题:我想知道在 Java(我的 IDE 是 Netbeans)中是否有任何类包含用于搜索的方法,如 BFS、DFS 和 A 星?如果是这样,您能否提供算法代码的链接(我需要将它们用作我的代码的基础......我不能直接包含它们......你知道......大学作业)。我想这段代码很容易找到,因为 Java 是一种开源语言。我错了吗?

非常感谢你

0 投票
5 回答
196 浏览

c# - 需要对这些代码进行解释

我最近偶然发现了一个项目(使用 A* alg 的 8 谜题求解器),其中一些代码对我来说很奇怪,因为我以前从未见过类似的代码。

这条线是什么意思?这是什么 ?!

这是什么符号?我根本无法理解!我发布了该课程的示例,以便您几乎可以一起看到它。还有一个问题,像 StateNode 这样实现一个类是不是错了?它仅使用构造函数来初始化其字段,更糟糕的是,将它们全部声明为 public !他/她应该没有为此任务实施Propertise吗?

0 投票
1 回答
28484 浏览

algorithm - 8-puzzle 有多少种可能的状态?

经典的 8 拼图属于滑块系列。我的书(Stuart Russell 和 peter Norwig 的人工智能现代方法)说 8 谜题有9!/2种可能的状态。但是为什么/2?你怎么得到这个?