2

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

我怎样才能做到这一点?是否有人对随机单词生成器有一些建议 - 最好使用字典。

我不想要一个随机文本生成器,我希望它们是实际的英文单词。

4

2 回答 2

7

查看Lexicontext,它具有许多单词的字典定义,并具有用于生成随机单词的简单 API:

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

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

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

于 2012-09-10T00:58:54.580 回答
1

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

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

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

(提示:让文件中的第一条记录包含有关列表数量、每个列表的单词大小以及每个列表中的条目数的信息,这样您就可以在不更改代码的情况下刷新单词列表。)

于 2012-09-10T01:27:13.583 回答