【问题标题】:need a random word generator using a dictionary需要一个使用字典的随机词生成器
【发布时间】:2012-09-02 21:04:44
【问题描述】:

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

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

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

【问题讨论】:

  • 我想说,如果你写了一些代码,你就可以做到。到目前为止你写了什么代码? (但请参阅this thread。)

标签: objective-c ios xcode ios5


【解决方案1】:

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

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

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

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

【讨论】:

  • 如何指定字长。
  • @Comradsky 你没有,使用这个 API。在你用关于刽子手游戏的信息更新你的帖子之前,我已经回答了。您可以使用while 循环,直到获得具有指定长度的单词。
  • 是的,我将不得不使用不同的 api,不过我认为这对很多其他人都有好处
【解决方案2】:

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

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

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

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

【讨论】:

  • 可以,但是有人可以告诉我如何使用 NSDictionary。
  • @Comradsky NSDictionary 不是你想象的那样。它与 C++ 和 Java 的 map 类型相当,例如一个键 -> 值对数组。
  • 是的,NSDictionary 在这里根本不适用。 (Apple 拼写词典完全是另外一回事,但是,正如我之前链接到的线程中所指出的,您无法真正访问。)
  • 我的意思是字典,我知道 nsdictionary 用于在设备内存中存储项目。我只是不知道如何称呼本地字典。很抱歉造成混乱
  • @Comradsky 没有内置字典供您访问。什么都没有。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-11
  • 2017-09-03
  • 2014-01-20
  • 2014-05-21
  • 2015-01-25
相关资源
最近更新 更多