在与数十万个单词进行比较时,查看单词是否存在的有效方法是什么?

时间:2012-03-20 19:45:37

标签: objective-c ios database dictionary

我一直在使用objective-c,我想尝试构建一个应用程序。该应用程序将类似于拼字游戏类型的游戏。将会拖放瓷砖(我已经知道如何编程)和一个提交按钮。我遇到麻烦的唯一一件事就是搞清楚如何将电路板上的字母与数十万字进行比较,而不会让我的程序陷入困境。到目前为止,我想到的是将这些单词存储在数据库中。 objective-c是否有任何内置的api可以访问标准的字典数据库?我不是指字典数组,而是指带有单词和可能定义的实际数据库。有什么想法吗?

3 个答案:

答案 0 :(得分:3)

我使用了Lexicontext,它是20美元,但在我看来它是值得的,非常快,有一个演示,它包含一个用于格式化CSS定义的API。

答案 1 :(得分:3)

看起来你对20美元的解决方案感到满意。对于更冒险的人来说,您想要了解的数据结构是tries

想象一棵树有26个孩子的根,一个字母表中的每个字母。现在想象每个孩子也有26个孩子。你可以通过从根到叶子的N步来拼写任何长度为N的单词。现在想象你修剪树,使它只包含有效的单词。那是你(非常快)的单词验证器。它平均需要与平均字长一样长。

答案 2 :(得分:2)

取决于你的游戏实际上是如何“拼字游戏”......

当玩家按提交时你是否要验证这个词?

这不是Scrabble的工作方式。只要对手不挑战该单词,玩家就可以玩任何(非)单词。

所以你需要在“挑战”系统中进行单词验证,但是一旦玩家玩这个单词就不应该发生。然后,一个不道德的玩家可以放置“可能”的单词并按提交,看看它是否真的是一个有效的单词。