dar*_*rog 8 ruby dictionary ruby-on-rails
我做了一些谷歌搜索但找不到我想要的东西.
我正在开发一个拼字游戏类型的单词游戏,并且想知道是否有一种简单的方法可以验证玩家在游戏中输入的内容实际上是一个单词.他们正在打字.
是否针对某种英语语言词典数据库加载了应用程序中解决此问题的最佳方法?如果是这样,是否有任何提供此类功能的库?如果没有,你会建议什么?
谢谢你的帮助!
Ale*_*fee 14
你需要两件事:
单词列表是棘手的部分.在大多数Unix系统上,有一个单词列表/usr/share/dict/words或/usr/dict/words- 请参阅http://en.wikipedia.org/wiki/Words_(Unix)以获取更多详细信息.我Mac上的那个有234,936个单词.但它们并非都是有效的拼字游戏.因此,您必须以某种方式获取Scrabble字典,确保您拥有使用它的正确许可,并处理它以使其成为文本文件.
(更新:LetterPress的单词列表现在是开源的,可以在GitHub上找到.)
在简单的情况下,代码没有问题.这是我刚才掀起的剧本:
words = {}
File.open("/usr/share/dict/words") do |file|
file.each do |line|
words[line.strip] = true
end
end
p words["magic"]
p words["saldkaj"]
Run Code Online (Sandbox Code Playgroud)
这将输出
true
nil
Run Code Online (Sandbox Code Playgroud)
我把它作为练习让读者把它变成一个合适的Words对象.(从技术上讲,它不是一个字典,因为它没有定义.)或者使用DAWG而不是哈希,即使哈希可能适合您的需求.