问题标签 [boggle]

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 投票
2 回答
436 浏览

java - 为什么稀薄的 Boggle Solver 不起作用?

我正在编写一个 boggle 求解器,但我不知道我的编码哪里出错了。这是我到目前为止所拥有的:

}

它只是运行,并且很少会说找到了一个词。它也需要很长时间才能运行,大约一个小时。我看不出我的错误在哪里,我看不出我可以在哪里犯错。任何帮助都会很棒!

0 投票
1 回答
1904 浏览

c++ - C++:递归回溯 boggle grid

我意识到这段代码可能有点难以阅读,我试图做的是调整一个标准的递归迷宫求解算法——在找到解决方案之前尝试所有方向,以适应游戏“boggle”的算法它检查目标词是否可以通过四个方向中的任何一个在网格上形成。我意识到这段代码有不止一个错误,但我想要一些关于如何解决最重要问题的输入,例如它搜索网格的方向和方式显然不起作用。

控制台输出:

代码:

0 投票
2 回答
6853 浏览

python - 哪种算法最适合用 Python 解决像“Boggle”这样的单词搜索游戏

我正在编写一个类似于Boggle的游戏,玩家应该在一个由随机字母组成的大字符串中找到单词。

例如,有五个数组,里面有这样的字符串。五行,每行由六个字母组成:

因此,游戏的用户应该使用可用的字母来制作单词,并牢记以下限制和规则:

  • 不可能重复同一个字母来造一个词。我说的是游戏中的“物理”字母,即骰子。它不可能使用相同的骰子两次或更多次来制作单词。
  • 不可能“跳”任何字母来造词。组成单词的字母必须是连续的。
  • 用户可以向她想要的任何方向移动,而不受上述两个限制。所以它有可能先到顶部,然后到底部,然后到右边,然后再到顶部,依此类推。所以寻找单词的动作可能有点不稳定。

我想知道如何遍历所有的字符串来造词。要知道单词我会使用带有单词的 txt 文件。

我不知道如何设计一种能够执行搜索的算法,特别是考虑查找单词所需的不稳定动作并遵守限制。

我已经实现了用户体验、掷骰子和填满棋盘游戏的逻辑,以及六字母骰子的所有逻辑。

但这部分并不容易,我想阅读您对这个有趣挑战的建议。

我在这个游戏中使用 Python,因为它是我用来编码的语言,也是我最喜欢的语言。但是算法本身的解释或建议也应该很好,与语言无关。

0 投票
4 回答
2148 浏览

java - Java:在递归方法中记住上一步的结果

我正在开发一个 Boggle 游戏,有人告诉我搜索单词的最佳方法是使用递归。我正在尝试使用 searchWord 方法来搜索单词。如果找到第一个字母,则该方法调用自身并删除第一个字母。当长度 == 0(找到单词)或 false(未找到字母)时,该方法返回 true。问题有时令人难以置信,一个“骰子”周围有多次相同的字母......为了解决这个问题,我需要计算那个字母,如果它不止一次,它应该搜索那个字母的下一个出现(搜索同一个词,不丢首字母)。我需要一种方法来记住该字母和多个字母所围绕的字母的索引,以便在找不到字母时可以使用它来检查是否还有其他可能性。既然'

希望大家能帮忙!这是方法:

注意:是的,我使用了奇怪的字符串,因为字符可能是更好的选择,但我可以稍后更改。

0 投票
1 回答
822 浏览

java - 我的算法有问题解决拼图板

所以我对 Java 比较陌生(我目前正在我的学校学习 AP java),我正在尝试开发一种递归算法来解决 n*n 板,我觉得我非常接近,但还没有完全达到。我已经写了所有东西来遍历我的字典以查找我发送的字母是否是单词等。我的算法是让我的数组中的起始字母为 (n,p),将这些坐标发送到另一个方法去各个方向寻找所有可能的组合。一旦找到以 (n,p) 开头的所有组合,我将递增 p 直到它到达行的末尾,然后我将递增 n 并再次从 0 开始 p。(我只浏览了一半的字母,因为前后组合都是一样的)

我遇到问题的部分是递归序列,因为一旦我越过板上的某个位置,我想标记它以确保在序列的其余部分我永远不会再越过它。它不能完全工作,我想知道是否有人可以告诉我为什么/帮助我编写更好的算法。提前致谢

0 投票
1 回答
142 浏览

algorithm - 在我的递归方法中不断超出范围来导航和查找 4X4 矩阵中的所有字母组合

这是 Boggle 求解器的一部分。我做了一个递归方法来遍历一个字符串矩阵。MyLetteres已存储所有字符(例如 a、b、c...),MyLetteres1初始化为空,并且trackerfalse. 这些变量标记了我已经访问过的矩阵中的哪些坐标(我无法重新访问坐标)。我只能移动到相邻的坐标(不能跳过)。该参数String word使用单个字母(起点)进行初始化。int x并且int y是我的 (x,y) 坐标。忽略int pint n

我遇到的问题是我似乎无法正确标记该方法已经结束的坐标,然后我似乎无法将tracker(最后一行)重置false为下一个getPaths()运行。

这是我的代码,请帮忙!

0 投票
1 回答
106 浏览

php - 哪里错了?php 字母矩阵

我在这里找到了这些 php 代码,但代码无法正常工作。似乎if(isset($words[$word]))没有通过,因为我总是得到一个空的结果数组

0 投票
1 回答
401 浏览

java - 让我的字典搜索更高效

我在 Java 中创建了一个 boggle 求解器,它需要大约 1 分 30 秒来解决一个板,我确信它是因为我遍历我的字典的方式。这个想法是它检查它是否是一个单词,并查看它是否是一个有效的前缀。如果它是一个有效的前缀,它将返回 true 以便程序继续运行。如果它返回 false,那么程序将停止运行它正在学习的课程。我阅读了有关 trie 结构的信息,但我不太了解如何实现它们。带有书面代码的示例,一个小的解释将不胜感激

0 投票
1 回答
1068 浏览

java - 为 Java Boggle 游戏设置时间限制

我已经编写了解决boggle board的代码,现在我想将它转换成我自己的游戏。我有我需要的一切,除了我不知道如何设置时间限制,所以这个人只能在 2 分钟内输入单词。这是我到目前为止所拥有的,但它并没有做我想做的事情,即在 2 分钟后停止。

0 投票
1 回答
1316 浏览

java - 调试用于查找单词是否存在于拼图板上的递归方法

我正在尝试实现一个 boggle 求解器。

我的基本想法是创建一种方法来检查单词是否在板上。然后通过删除以char开头的单词来修剪我的字典,然后将该方法应用于字典集上的每个单词以获得解决方案集。

我不完全确定这个解决方案的效率有多高。我很确定它只在 O(n) 上运行(与字典集的大小成正比)——这在更大的板上会很好(5x5 - 7x7)

我当前的方法(如果我可以修复访问的工作方式,应该可以工作):

我不确定我是否正确地实现了递归..它现在没有找到任何单词,但在我看来它应该可以工作..?我特别担心我是否正确处理了访问集(如果它跟踪在每个深度访问了哪些图块),但我知道这不是唯一的问题,因为否则我应该仍然能够找到一些简短的单词。 ..

另外,我刚刚意识到我的“findFirstTile”方法只会开始在最后一个以该字母开头的图块上查找单词……因此,如果该字母在板上多次出现,它可能不会全部查看。

这也是我的 Tile 对象的构造函数:

我引用的瓦片数组(瓦片)也只是所有瓦片的数组,所以基本上在我的板上:

而“地方”(来自 Tile 构造函数)只是

我检查了我的 getNeighbors() 和 getChar() 和 getPlace() 方法,它们都按预期工作。