[Python] Wordleを解くためのプログラムを作る
はじめに
Wordleというゲームがあります。
そこでPythonで適当にツールを作って解いてみようと思います。
コード
まずは、"words.py"に知っている5文字の英単語を以下の様に登録します。
多ければ多いほど良いです。
そして、処理の本体を以下の様にします。
"words.py"と同じディレクトリに保存します。
使い方
プログラムを実行すると、英単語の候補が表示されるので適当に"Wordle"に入力します。
そうすると以下の画像の様に"Wordle"が単語のヒントを返します。
緑の表示された場合
ここで画像の様に1文字目のw
が緑が表示されたら、Pythonプログラムの方にs w 0:1
と入力します。
そうすると、候補が1文字目がw
の単語に絞り込まれます。
文字の位置が分かった場合の入力は s charcters start:end
です。
例えば、3文字目と4文字目がmn
でそれが緑で表示されたとします。
-
s
は、そのまま入力します。 -
charcters
には、mn
を入力します。 - 最後の
start:end
は、Pythonのスライスの記法と同じで2:4
と入力します。
1文字目と5文字目などつながっていない場合は、2回に分けて絞り込んでください。
黄色で表示された場合
画像の様にi
の文字が黄色で表示されたら、i i
と入力します。
こうするとi
が含まれる単語に絞り込まれます。
さらに、例の画像では、2文字目にはi
が無いことになります。
その場合は、n i 1:2
と続けて入力します。
こうすると、2文字目にi
がない単語に絞り込まれます。
含まれている場合の入力は、i charcters
です。
例えば、1文字目と4文字目がjl
でそれが黄色で表示されたとします。
-
i
は、そのまま入力します。 -
charcters
には、jl
を入力します。
こちらは、つながっていようがいまいが一度に渡せます。
その位置にない場合の入力は、n charcters start:end
です。
文字の位置が分かった場合と同じように入力してください。
灰色で表示された場合
画像の様にu
の文字が灰色で表示されたら、e u
と入力します。
また候補が絞り込まれます。
含まれていない場合の入力は、e charcters
です。
含まれている場合と同じように入力してください。
終了させる
end
と入力させるか、Ctrl+c
を入力してください。
上記の様に絞り込んでいけば、単語数が十分登録されていたら答えが分かると思います。
無い場合は、新しい単語を覚えて"words.py"に登録してください。
Discussion