6

最近はレタープレスでよく遊んでいます。

ゲームの目的は、ボード上の文字から単語を作成して、できるだけ多くの青いタイルを獲得することです。単語を再生すると、文字が赤いタイルで囲まれていない限り、単語を構成する文字が青に変わります。

通常のレタープレスボードは次のようになります。

ボード上の文字は何らかのルールで生成する必要があることに気付きました。そうしないと、いくつかのボードでゲームをプレイするのが非常に難しくなります。母音の数がなければならないというルールしか思い浮かびませんでした。他にルールがあるのか​​も気になります。

さらに、これはボーグル ダイスの生成に似たものになるのでしょうか。

4

2 に答える 2

4

user166390 の提案に基づいて、ソリューションをハックすることにしました。表示される頻度は、ウィキペディアから取得した英語用です。プログラムを数回実行し、結果をただ目で見てみると、かなりプレイしやすいように見えます。私は通常、少なくとも 4 文字または 5 文字の単語をいくつか見つけることができます。ゲームはあまり得意ではありません。とにかく、ここにコードがあります:

#!/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

アイデアは、生成される各文字に対して、ルーレット ホイール アルゴリズムを使用して、与えられた頻度に比例する確率でランダムに選択することです。

于 2013-06-22T11:19:42.237 に答える
1

開発者の Loren Brichter がそれについて話しているのを聞いたことがあります。Guy Ritchie の Debug ポッドキャストだったと思いますが、よくわかりません。いくつかのことを覚えています。

彼は少なくとも一定数の母音を保証します。

子音は母音とは別に生成されます。これは、個別の文字配布を意味します。

彼は、ゲームの背後にある辞書を独自に分析して、文字の分布を考え出しました。

Q が選択された場合、I が保証されるため、Q を使用した単語は常に可能です。

私はたくさん遊んでいます。何らかの理由でゲームが終了したことはありませんが、すべての文字が使用されています。すべての文字で単語が常に可能であることが保証されているかどうかはわかりませんが、強制されていなくても、実際には真実であるようです.

于 2013-06-24T09:38:18.760 に答える