问题标签 [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 投票
1 回答
38 浏览

python - 通过 git 上传:致命:'/git/p/Boggle' 似乎不是 git 存储库

我正在做 reddit pygame boggle 挑战。在我的笔记本电脑上,它位于名为 Boggler 的目录中,但在 sourceforge 中,它被称为 pygame-boggle。当我执行“git push -u origin master”时,它会在标题中给出错误。我究竟做错了什么?我如何让它推动?

我按照这里的说明操作:https ://sourceforge.net/p/pygame-boggle/code/ref/master/

0 投票
1 回答
1715 浏览

c++ - 使用未声明的标识符“top”;您指的是 'pop' 吗?

我的教授给了我一些关于回溯游戏的 C++ 代码。但它不会为我编译。我收到此错误,使用未声明的标识符“top”;您的意思是“流行”吗?如果需要,这是其余的代码。谢谢!

0 投票
2 回答
548 浏览

java - 查找单词字母网格

我正在开发 Boggle 游戏,我正在创建一个名为 findWord 的方法,如果可以在“网格”中找到“单词”,则该方法返回 true。返回 false 否则私有成员变量 grid 有字母 grid。但是,当我运行我的主要方法时,它会一直打印“未找到”,我无法弄清楚我在哪里犯了错误!这是我的代码

0 投票
1 回答
127 浏览

c++ - 在 Trie 中引入数据的最佳方式?(C++)

我们正在开发一个解决 Boggle 游戏的程序,整个程序必须在 0.1 秒内执行。我们通过标准输入将字典插入到我们的代码中(持续 0.05 秒,我们最大时间的一半)。我们使用以下函数将单词添加到字典中,每个单词持续 0.1 秒:

在这种情况下,DIM = 4(是 Boggle 的 NxN 板的维度)并且 aux 是一个向量,其中来自标准输入的所有数据都被转储。我们强加了 len >= 3 的条件,因为我们只想要包含 3 个或更多字母的单词。

有什么想法可以提高这些功能的速度吗?

0 投票
2 回答
1763 浏览

java - Boggle 求解器实现

我正在努力实施一种解决方案,以在随机的 5x5 字母板上找到所有单词。目前它正在返回一些单词,但几乎没有返回完整列表。我很确定我的问题存在于我的 for 循环的 findWords 方法中,但我无法弄清楚如何使 if 语句继续在所有 8 个方向上遍历。

0 投票
0 回答
269 浏览

java - 如何根据以下条件验证每个输入字符

我正在开发一个 Boggle 游戏。我想在按键/向上/向下等上验证两件事。

  1. 使用键盘,用户应该被限制只能输入板中的字符(并将其附加到输入字符串/单词),否则跳过它。向用户展示 4 x 4 的 Boggle 板。例如

    在这种情况下 C - Z 是无效输入,它们不应该附加到输入字符串中,我希望用户在输入完整单词后只按一次 ENTER 键。

  2. 输入的字符必须与前一个字符相邻(垂直、水平或对角线)。

目前我正在使用扫描仪(system.in)获取字符串并使用两个单独的函数验证这些条件,但我想要现场验证。

我的代码:

简而言之,我在棋盘中没有重复的字符,我为每个索引位置维护一个邻接字符串和所有棋盘字符的字符串,我indexof()用来获取棋盘中字符的索引,然后在邻接字符串 [] 中查找有效性.

0 投票
1 回答
607 浏览

algorithm - Boggle - 计算 N*N 网格上所有可能的路径。表现

在阅读这个问题时,我想知道为什么没有人会“简单地”迭代 boggle 网格上的所有可能路径并让单词尝试跟随,然后如果单词 trie 中没有匹配项则取消路径。在一个小小的 4 x 4 网格上不可能有那么多路径,对吧?有多少条路?所以我开始在 F# 中编写一个路径计数器函数。结果产生了没有人在另一页上陈述的结果:网格上的路径比我想象的要多得多(实际上,路径比单词集中的单词多)。

虽然这几乎是我问题的背景故事,但我最终得到的代码运行速度相当慢,我发现我无法对代码的某些方面给出好的答案。所以在这里,首先是代码,然后在它下面,你会发现我认为值得解释的点......

  1. 在第 30 行,我moves用第一个参数对函数进行了柯里化,希望代码优化可能会从中受益。也许优化我在 move 中创建的 9 个集合,它们只是n. 毕竟,它们不需要一遍又一遍地生成,对吧?另一方面,我不会真的打赌它真的会发生。
    所以,问题 #1 是:我怎样才能以尽可能少的代码膨胀方式执行这种优化?(我当然可以创建一个包含 9 个成员的类型,然后为每个可能的 n 创建一个该类型的数组,然后像使用预先计算的集合一样进行查找表,但在我看来这将是代码膨胀)。

  2. 许多消息来源暗示平行折叠被认为是至关重要的。如何创建计数功能的并行版本(在多个内核上运行)?

  3. 有没有人有聪明的想法如何加快速度?也许一些修剪或记忆等?

起初,当我运行该函数时,n=4 lmin=3 lmax=8我认为它需要很长时间,因为我在 fsi 中运行它。但是后来我用 -O 编译了代码,它仍然花了大约相同的时间......

更新

在等待你们的输入时,我做了代码臃肿的手动优化版本(运行速度更快),然后找到了一种让它在多核上运行的方法。
总而言之,这 2 项更改使速度提高了 30 倍。这里是我提出的(臃肿)版本(仍在寻找避免臃肿的方法):

0 投票
0 回答
387 浏览

c# - 算法 - 用重力词列表填充矩阵

我正在尝试制作一种算法来填充方阵中给定单词的列表,其中字母数量等于矩阵大小。

这里的诀窍是你应该能够连接每个单词(每个字母与他后面的字母在同一个单词中)并且在连接结束时应该清除板。(每个单词都是独立的 - 不与其他单词连接)。

您可以连接一个单词:如果它的字母是邻居 - (邻居可以是:左、右、上、下、左上、右上、左下、右下)。你应该按顺序连接字母,不能跳过字母。(就像在纸上画一条线而不移除铅笔)并且在连接一个单词时你不能超越另一个单词的其他字母。

当一个单词连接起来时,它就会从板上删除——并且其字母上方的每个字母都会掉下来取而代之(例如:字母不能飞)。每个都将落在另一个之上,而不是在矩阵中的相同位置。

单词不必在第一次看板时就全部连接起来 - 所以:它们应该是可连接的,而其他单词是连接的 - 然后它的字母将是邻居。

这是董事会应该是什么样子的一个例子:

棋盘求解示例 - GIF

图像中的板是由我编写的算法生成的,它在 1-10 秒内生成一个 5X5 板,这对于计算机来说太多了。我遇到的问题是 7X7 和更大的板需要“无限”时间才能生成,但我无法生成任何 7X7 板。

另一个注意事项:一块板不应该遵循在所有板上重复的模式,并且最好不要遵循模式。

我在互联网上搜索了几天,找不到解决此类问题的文章。启动代码时我的 CPU 使用率约为 1.1%。我不知道为什么要花很多时间。

我正在使用递归算法,这是控制世代的主要功能:

我可以读/写 c#、C++、C、Java、Swift 和 Objective-C。

0 投票
1 回答
926 浏览

c++ - 如何在 C++ 中自己的类中调用非静态成员函数

我正在用 C++ 构建一个类 Boggle。在 Boggle 类中,我声明了一个名为 boardIndex 的结构类型:

还有一个回调函数来比较两个“boardIndex”:

我想将回调函数传递给 Boggle.cpp 文件中的一组 boardIndex 元素:

这可能吗?在当前表单中,我会收到一个错误,即“必须调用对非静态成员函数的引用”。我没有 Boggle 类的任何对象 - 还有另一种调用 CmpByIndex 函数的方法吗?

0 投票
0 回答
224 浏览

java - 为 Boggle 搜索编程

出现了一个问题,我不得不进行递归搜索。我做过类似的程序(如 wordsearches、mazes、connect4 等),但无法让这个程序工作。

我不能确切地告诉你弹出了什么错误(因为大多数时候这个词出现在网格中,但它坚定地提示我它不是)

该代码随机生成一个表,其中随机大写字母(ASCII 65-90?)被转换为字符。

字典功能(我出于测试目的而注释掉的功能)检查字典中是否存在单词输入(用于拼图游戏)并做出相应的响应。

我觉得我应该更详细地解释一些变量的作用:

  • pos[][]是我玩错了的桌子
  • posbackup[][]是我在搜索过程中找不到单词时的备份(因此原始值不会丢失)
  • dem是一个随机生成的整数,它与表格的尺寸相关(dem基本上是 的拼写错误dim)。

这是代码:

可能是我选择排序我的方法是非常规的,但这就是我到目前为止所得到的。