我的一个朋友正在谈论她喜欢玩的文字游戏,你试图通过一次切换一个字母来将一个单词转换成另一个单词(它们具有相同数量的字母),其中每个迭代产生一个真正的单词. 例: MOON – WO
例:
MOON –> WOLF
GOON
GOOF
GOLF
WOLF
我认为编写一个程序来生成解决方案是一个有趣的小项目,并且在给出2个单词的情况下更进一步,确定解决方案是否存在以及最佳解决方案中的迭代次数.
问题是我无法找到可以通过编程方式轻松访问的免费单词列表.我也在考虑用这个作为学习Python的借口,所以如果有人知道免费的单词列表以及如何从Python解析和访问它的指针就会很棒.用于确定如何找到最佳路径的算法我将自己工作.
选项:>在您的常见或园艺品种Unix安装上查找/usr/share / dict / words.
> http://www.ibiblio.org/webster/
> http://wordlist.sourceforge.net/
> http://svnweb.freebsd.org/csrg/share/dict/(点击’words’文件的’revision’标签)
#4是我用于自己的Python experiment的文字游戏,它运作得很好.
对于奖励积分,这里有一些东西让你开始你的单词程序:
import re startwith = "MOON" endwith = "GOLF" cklength = re.compile('.{' + str(len(startwith)) + '}(\n)?$', re.I) filename = "C:/dict.txt" words = set(x.strip().upper() for x in open(filename) if x.match(cklength))
然后单词将是字典中所有4个字母单词的集合.你可以从那里做你的逻辑.