需要一个使用字典的随机字生成器

时间:2012-09-10 00:48:37

标签: objective-c ios xcode ios5

我正在制作一个刽子手游戏,所以我需要一个随机的单词生成器。我的目标是让用户在单词中说出他们想要多少个字母,并输出带有那么多字母的随机单词。我想使用应该在iOS 5中可用的词典。从这个link

学习

我该怎么做?有没有人对随机字生成器有一些建议 - 最好使用字典。

我不想只是一个随机文本生成器,我希望它们是真正的英文单词。

2 个答案:

答案 0 :(得分:5)

查看Lexicontext,其中包含许多单词的字典定义,并且有一个用于生成随机单词的简单API:

Lexicontext *dictionary = [Lexicontext sharedDictionary];
NSString *word = [dictionary randomWord];

从那里,您可以使用API​​的其余部分来获取定义等。

免责声明:除了作为一个满意的客户外,我与Lexicontext没有任何关系。

答案 1 :(得分:1)

请注意,要拥有体面的刽子手游戏,您实际上只需要一本约5000字的字典。如果你谷歌“英文单词列表”你会得到一堆列表,你可以连接它们(并消除欺骗)来创建你的列表。然后你可以将它们放在一个文件中,然后从文件中随机选择。

从文件中选择单词的简单方法是在每个“行”中放置一个单词,然后在文件中使用随机数seek,读取并丢弃一行(因为您可能最终在在一个单词的中间),然后阅读并使用下一行。如果您的随机数(应该以文件长度为模)导致您在阅读下一行时点击文件结尾,请使用文件的第一行。

如果您希望按长度选择它们,请按文件中的长度对单词进行排序,例如,前300个为4个字母的单词,接下来的500个为5个字母的单词,接下来的1000个为6个单词字母。由于您知道长度,因此您不需要使用读取和丢弃方案 - 对于给定的字长,您可以计算列表开始的文件中的确切位置,并且可以将随机数乘以字长+ 1(对于换行符)准确定位单词。

(提示:文件中的第一条记录包含有关列表数量,每个列表的字大小以及每个列表中的条目数的信息,以便您可以刷新单词列表而无需更改代码。 )