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

python - 在 python 中存储和使用大型文本文件的最佳方法

我正在为我用 python 编写的 boggle-clone 创建一个网络服务器,它接受用户,解决板子,并对玩家输入进行评分。我使用的字典文件是 1.8MB(ENABLE2K 字典),我需要它可用于多个游戏求解器类。现在,我拥有它,以便每个类逐行遍历文件并生成一个哈希表(关联数组),但是我实例化的求解器类越多,占用的内存就越多。

我想做的是一次导入字典文件,然后在需要时将其传递给每个求解器实例。但是最好的方法是什么?我应该在全局空间中导入字典,然后在求解器类中以 globals()['dictionary'] 的形式访问它吗?或者我应该导入字典然后将它作为参数传递给类构造函数?其中一个比另一个更好吗?有第三种选择吗?

0 投票
3 回答
1041 浏览

php - PHP 拼字游戏

对于一个项目,我正在考虑用 PHP 构建一个 Boggle 类型的游戏。我在网上看到的所有解决方案都使用了某种基于树或散列的方法。

PHP 中是否有类似的数据结构?关于如何处理当前字母板上存在哪些单词的任何建议?

0 投票
35 回答
223632 浏览

algorithm - 如何从字母矩阵中找到可能的单词列表 [Boggle Solver]

最近我一直在我的 iPhone 上玩一个名为 Scramble 的游戏。你们中的一些人可能将这款游戏称为 Boggle。本质上,当游戏开始时,您会得到一个字母矩阵,如下所示:

游戏的目标是找到尽可能多的单词,这些单词可以通过将字母链接在一起形成。您可以从任何字母开始,并且围绕它的所有字母都是公平的游戏,然后一旦您继续下一个字母,围绕该字母的所有字母都是公平的游戏,除了以前使用的任何字母。因此,例如,在上面的网格中,我可以想出单词LOBTUXSEAFAME等。单词必须至少为 3 个字符,并且不超过 NxN 个字符,在这个游戏中为 16,但在某些实现中可能会有所不同. 虽然这个游戏很有趣而且让人上瘾,但我显然不太擅长它,我想通过制作一个可以给我最好的单词的程序来作弊(单词越长,你得到的分数越多)。

样品拼图
(来源:boggled.org

不幸的是,我不太擅长算法或其效率等等。我的第一次尝试使用了这样的字典(~2.3MB),并进行了线性搜索,试图将组合与字典条目进行匹配。这需要长时间才能找到可能的单词,而且由于每轮只有 2 分钟,这根本不够。

我有兴趣看看是否有任何 Stackoverflowers 可以提出更有效的解决方案。我主要在寻找使用 Big 3 Ps 的解决方案:Python、PHP 和 Perl,尽管使用 Java 或 C++ 的任何东西也很酷,因为速度是必不可少的。

当前解决方案

  • 亚当·罗森菲尔德,Python,~20 多岁
  • John Fouhy,Python,~3s
  • Kent Fredric, Perl, ~1s
  • Darius Bacon, Python, ~1s
  • rvarcher, VB.NET, ~1s
  • Paolo Bergantino, PHP (live link) , ~5s (~2s local)
0 投票
1 回答
1754 浏览

vb.net - 在 Boggle 板上查找单词的算法

我正在 vb .net 中构建一个 boggle 游戏。现在,我的骰子是二维数组(0,0 0,1)等......

我想要它做的是,当我输入这个词时,它使用突出显示它的button(x,y).doclicksub 在板上突出显示它。现在我的实现找到了第一个字母,然后继续尝试每个字母,直到它满足 8 个角条件(即它与最后一个相邻),但这并不总是有效。如果板上有 2 个“G”,而我想要底部的一个,这将不起作用。有人可以给我一个需要发生什么的伪代码示例。我被难住了将近 6 个小时,试图弄清楚这一点。谢谢

0 投票
5 回答
5395 浏览

python - 从 python 中的随机输入字母中查找单词。已经有什么算法可以使用/编码?

我正在尝试在这里编写一个像这样的单词解扰器,并且想知道我应该使用什么算法来实现它。此外,如果有人能找到现有的代码,那也很好。基本上,该功能将像一个 boggle 求解器,但不是矩阵,只是从字符串中搜索所有单词的可能性。我已经有足够的字典了。

我打算在 python 或 ruby​​ 中执行此操作。提前感谢您的帮助!

0 投票
2 回答
1175 浏览

java - 当前实例上的java计时器

我有上面的类,它应该在给定的时间长度内执行一个循环,然后调用一个实例方法。本质上,我需要 newGame() 中的循环在当前实例上调用 endGame() 之前运行一分钟左右。但是,使用 Timer 类我不确定如何在当前实例上调用我需要的方法,因为我无法将任何参数传递给 timertasks 运行方法?

有没有一种简单的方法可以做到这一点,还是我以错误的方式去做?(注意:这只是一个控制台项目,没有 GUI)

==========

代码已编辑

根据建议,我已将代码更改为上述代码,它几乎可以按我的预期工作,但是线程似乎仍然没有正确结束。我是while循环会死,控制最终会回到主要方法。有任何想法吗?

0 投票
1 回答
2028 浏览

python - 如何在拼字游戏中递归检查答案

作为一个练习,我一直在尝试在 python 中构建一个非 GUI boggle 类型的游戏。到目前为止,用户可以输入板尺寸(4x4、5x5 等)。字母“数组”出现,然后用户可以输入他们认为是有效选项的单词。

我想通过使用递归函数检查输入的单词是否有效。在小板上,我的解决方案似乎工作正常。然而,在较大的板上,具有相似开头和多个路径的单词不会注册。我有一种感觉,这是因为如果当前路径在没有找到正确单词的情况下结束,我的函数的最后一部分就无法后退足够远。

这是我到目前为止所拥有的:

我相信至少部分问题在于函数末尾的 try 块。如果单词不太长或者没有太多可能性,它就可以工作。例如,尝试在以下内容中查找 'raws' 将不起作用,即使它存在:

我确信这可以通过一个相当简单的递归函数来完成,但是几个小时后,我迷路了。哦,我宁愿不预先生成所有可能的单词。这样做的目的是使用递归来查找输入的单词。

任何帮助是极大的赞赏!

0 投票
3 回答
2323 浏览

opencv - 识别图像中的拼字/拼字游戏字母

我有兴趣识别 Boggle 板上的字母,可能使用 openCV。字母都是相同的字体但可以旋转,所以使用标准的文本识别库有点问题。此外,M 和 W 有下划线来区分它们,而 Q 实际上是一个 Qu。我相当有信心可以隔离图像中的单独字母,我只是想知道如何进行识别部分。

0 投票
2 回答
3892 浏览

java - 优化boggle算法

我正在实现以下boggle 算法

我想优化它,因为找到所有单词大约需要 2 分半钟。您对优化技术有什么想法吗?

0 投票
1 回答
3804 浏览

php - 为什么我的 Boggle 求解器会收到警告“缺少参数”?

几年前,有人在他们用 PHP 制作的 Boggle 求解器上发布了一些 PHP 代码。

如何从字母矩阵中找到可能的单词列表 [Boggle Solver]

我一直试图让它工作,但我得到一个错误“警告:find_words() 缺少参数 7”,我已经知道它,因为他似乎忘记将变量传递给函数。我一直在努力让它工作,但我似乎无法弄清楚,其他人可以做到吗?有没有人有一些更高级的东西?也许可以跟踪单词路径的东西?无论如何,如果有人能提供一些很棒的输入。