我想做一个安卓文字游戏,这需要一个WordsChecker。使用棋子的类似应用有: Word With Friends,Scramble Friends,...你可以转到Google Play,下载并安装应用程序,然后尝试使用它。
目前我没有线索写类似这些应用程序的WordsChecker,我已经研究了一点,但一些解决方案对我来说并不好。
有谁有什么想法吗?你能帮帮我吗?
发布于 2012-05-10 12:10:09
如果你使用trie数据结构(google it),那么可以高效地找到单词,而存储复数和其他时态的成本可以忽略不计。
trie是从根节点开始的树结构。每个子节点都通过一个字母进行索引,因此到目前为止,每个节点都与单词相对应。每个节点中的标志指示这是否是一个完整的单词。
要找到像"cars“这样的单词,请从根开始,将C链接交叉到一个节点,然后将A链接交叉到下一个节点,然后将R链接交叉到下一个节点。此时,该节点被标记为一个完整的单词(CAR),但是您仍然可以将S链接交叉到表示汽车的节点,该节点也被标记为一个完整的单词。
发布于 2012-05-10 11:26:11
经过一些谷歌搜索后,我找不到这样做的类,但您可以做的是调用一个网站,如dictionary.com,并将单词作为参数的一部分。搜索html并检查该单词是否确实存在。
发布于 2012-05-11 11:58:39
我在java网站上找到了这本字典。我不知道它有多“好”,例如,将它与“官方拼字游戏”单词列表进行比较。
Trie数据结构可能过于夸张了。我自己还没试过呢。(双关语似乎是不可避免的,非常抱歉。)您可以考虑将单词转换为数字形式(不过,字符串的hashCodes可能很好),并将它们存储在一个散列集中。我之所以说哈希集,是因为你真正需要知道的就是成员资格。据我所知,测试列表成员是否存在的最快方法是尝试将其添加到HashSet:如果失败,则它已经是一个成员。如果它成功了,那么它不是一个单词,不要忘记删除它!
在使用Boggle的各个方面时,我使用了这个编程策略,并使用它制作了词频列表,给出了特定的Boggle立方体。
如果有一种结构与你的搜索相关,例如,你知道你将以特定的顺序进行搜索,而不是随机访问,那么像trie这样的更结构化的方法对于优化是很有意义的。但也要考虑到,基于回合的文字游戏几乎不需要出色的性能!(接吻)
投票否决这个问题是多么令人不满啊!当我第一次进入这个主题时,我发现很难理解这个问题,所以我对最初的帖子有一些同情。我给出的问题是+1来抵消这个。
https://stackoverflow.com/questions/10526893
复制相似问题