👾

[Python] Wordleを解くためのプログラムを作る

2022/06/26に公開

はじめに

Wordleというゲームがあります。
https://www.nytimes.com/games/wordle/index.html
ちょっとやってみたけど英単語を全然知らないので解くことが出来そうにありませんでした。
そこでPythonで適当にツールを作って解いてみようと思います。

コード

まずは、"words.py"に知っている5文字の英単語を以下の様に登録します。
多ければ多いほど良いです。

https://github.com/BlueSilverCat/wordle/blob/main/words.py

そして、処理の本体を以下の様にします。
"words.py"と同じディレクトリに保存します。

https://github.com/BlueSilverCat/wordle/blob/main/wordle.py

使い方

プログラムを実行すると、英単語の候補が表示されるので適当に"Wordle"に入力します。
そうすると以下の画像の様に"Wordle"が単語のヒントを返します。

Wordle Rule

緑の表示された場合

ここで画像の様に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