我最近经常玩Letterpress。
这个游戏的目的是通过从棋盘上的字母中造出单词来获得尽可能多的蓝色瓷砖。当您播放单词时,组成单词的字母将变为蓝色,除非该字母周围有红色磁贴。
一个普通的Letterpress板看起来像这样:

我意识到棋盘上的字母必须按照某种规则生成,否则在一些棋盘上玩这个游戏真的很难。我只能想到其中必须有一些元音的规则。我想知道是否还有其他规则。
此外,我想知道这是否会类似于生成Boggle骰子。
发布于 2013-06-22 19:19:42
我决定根据user166390的建议,拼凑出一个解决方案。你看到的频率是英语,取自维基百科。运行这个程序几次,看看结果,对我来说它们看起来很好玩。我通常至少能找到一些四五个字母的单词,而且我甚至不太擅长这个游戏!不管怎样,下面是代码:
#!/usr/bin/env python
from random import random
from bisect import bisect_left
letters = [c for c in "abcdefghijklmnopqrstuvwxyz"]
frequencies = [8.167, 1.492, 2.782, 4.253, 12.702, 2.228, 2.015, 6.094, 6.966,
0.153, 0.772, 4.025, 2.406, 6.749, 7.507, 1.929, 0.095, 5.987,
6.327, 9.056, 2.758, 0.978, 2.360, 0.150, 1.974, 0.074]
cumulative_frequencies = [sum(frequencies[0:i+1]) for i in xrange(len(frequencies))]
for i in xrange(5):
line = ""
for j in xrange(5):
line += letters[bisect_left(cumulative_frequencies, random() * cumulative_frequencies[-1])] + " "
print line其思想是,对于要生成的每个字母,使用roulette wheel algorithm以与给定频率成比例的概率随机选择。
发布于 2013-06-24 17:38:19
我听过Loren Brichter,开发人员,谈论它,但我永远记不住在哪里。我想是在盖伊·里奇的调试播客里,但我不确定。我记得一些事情。
他保证至少有一定数量的元音。
辅音是与元音分开生成的。这意味着单独的字母分布。
他对游戏背后的字典做了自己的分析,得出了字母分布。
如果选择了Q,则I是有保证的,因此Q总是可以使用一个单词。
我玩得很多。我从来没有因为任何原因而结束游戏,除了所有的字母都被使用。我不知道是否保证每个字母都有可能出现一个单词,但可以肯定的是,即使没有强制执行,这似乎也是真实的。
https://stackoverflow.com/questions/13216281
复制相似问题