1

ユーザーに 7 文字のランダムな文字列を与える作業ゲームをプログラムしました。ユーザーはこれらの文字のみを使用して、単語と単語以外の組み合わせを作成する必要があり、各文字は 1 回だけ使用されます。これは、時折のバグで、すでにほぼ完成しています。

私の主な問題は、文字列のポイント値を決定しようとするときに、長さ、各文字の値 (Scrabble 値に基づく)、およびそれが実際の単語であるかどうかの 3 つの要素を取ることです。ここにある辞書をダウンロードしました。このファイルは.txtUbuntu コンピューターにファイルとして保存されており、いくつかの異なる方法を使用してファイルから入力を検索しました (ファイルにはすべての単語が大文字で含まれているため、変数 'c​​apital' をinput.upper().ポイントが追加されるように設定します)。なら(length+lettervalues) * realword得点realword == 22 倍

dictionary = open('wordlist.txt', 'r')
for line in dictionary:
    if capitals in line:
        realword = 2
    else:
        realword = 1
dictionary.close()

また、 stackoverflowで解決策を試しました。これでも実用的な解決策は得られませんでした。試行するたびに、クラッシュしたりエラーが発生したりすることはありません。毎回elseステートメントに移動するだけです。この問題が解決されれば、非常にありがたいです。私は 2 日間、キーボードで頭を叩いています。

前もって感謝します

4

1 に答える 1

1

else ステートメントは必要ありません。realword を 1 に初期化し、ディクショナリに見つかった場合にのみ 2 に変更し、ブレークします。また、ほとんどの辞書には単語と意味が同じ行にあるので、スペースバーの前の最初の単語を選択するなど、分割してみてください。

capitals= input('enter word').upper()

realword = 1
dictionary = open('wordlist.txt', 'r')
for line in dictionary:
    if capitals == line.split()[0]:
        realword = 2
        break

print (realword)
dictionary.close()
于 2013-02-02T16:11:05.080 に答える