- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我一直在玩Letterpress最近很多。
该游戏的目标几乎是通过用棋盘上的字母拼出单词来获得尽可能多的蓝色方 block 。当您打出单词时,组成单词的字母会变成蓝色,除非字母被红色方 block 包围。
普通的凸版打印板看起来像这样:
我意识到棋盘上的字母必须按照某种规则生成,否则有些棋盘很难玩游戏。我只能想到必须有多个元音的规则。我想知道是否还有其他规则。
此外,我想知道这是否类似于生成 Boggle骰子。
最佳答案
我决定根据 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以与给定频率成正比的概率随机选择它。
关于algorithm - 在 Letterpress iOS 游戏中生成字母的合理算法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13216281/
我有一个曾经是 TreeView 控件的菜单,但现在我想让每个项目更加直观,并向树中的每个对象添加更多信息。 我的第一个意图是制作一个代表项目的用户控件,并在运行时将它们添加到面板中。这是一个好方法吗
我是 Docker 新手,想知道是否有可能(并且是一个好主意)在 Docker 容器中进行开发。我的意思是创建一个容器,执行 bash,安装和配置我需要的一切,然后开始在容器内进行开发。 容器将成为我
在 Java 中: Parent obj = new Child(); 我创建了一个 Parent 类型的对象。我假设我只能调用父类中定义的方法。因此,我无法调用 Child 中定义的“附加”方法或访
注意:我省略了其他两个阶段(V 和 W)的代码,示例中不需要。 我很确定,我这样处理“开”和“关”时间的方式并不是一种有效的方式。 我想使用查找表实现“开”和“关”脉动。计时器应与表的当前选定值进行比
当代码中包含 Java instanceof 运算符时,许多人会扬起眉毛并说这是禁忌。例如,在这个 other SO Q&A ,答案说: Note that if you have to use th
我是一名优秀的程序员,十分优秀!