前段時間看了少數(shù)派的文章《最近突然火起來的 Wordle 是什么?平平無奇的它憑什么成了「萬人迷」》可免,對Wordle 產(chǎn)生興趣,玩了幾天≡跚簦可能是離開校園時候很久沒有學(xué)習(xí)英語了,也可能是詞匯量不夠,總是解題失敗恳守。遂產(chǎn)生了寫一個Python 程序來幫助解題的想法考婴。
Wordle 規(guī)則介紹
Wordle 每天會更新一個5個字母的單詞,在6次嘗試中猜出單詞就算成功催烘。每個猜測必須是一個有效的單詞(不能是不能組成單詞的字母排列)沥阱。
每次猜測后,字母塊的顏色會改變伊群,顏色含義如下:Wordle規(guī)則.png
程序編寫
單詞數(shù)據(jù)
Wordle的單詞數(shù)據(jù)直接寫在網(wǎng)頁源代碼里考杉,進入Wordle,按F12
查看源代碼舰始。
Wordle源碼.png
我們將這些數(shù)據(jù)提取出來就能的到Wordle單詞列表崇棠,網(wǎng)上已經(jīng)有人整理成json文件,同時還提出了SOARE是最好的起始詞丸卷,有興趣的可查看《The Best Starting Word in WORDLE》
代碼編寫
獲取單詞列表之后枕稀,就可以開始代碼的編寫了。 代碼的基本思路就是谜嫉,按照灰色萎坷、黃色和綠色三種情況分別處理,排除不符合的單詞骄恶。
代碼編寫思路:
- 包含灰色色塊字母的單詞排除
- 不包含黃色色塊字母的單詞排除
- 包含黃色色塊字母但是還在錯誤的位置的單詞排除
- 與綠色色塊字母位置不符合的單詞排除
代碼開源在Github:eMUQI/wordle-helper
import json
with open("words.json", 'r') as f:
data = json.load(f)
words = data['words']
# 初始化
fault = "" # 灰色色塊
pos_wrong = ["", "", "", "", ""] # 黃色色塊
right = ["", "", "", "", ""] # 綠色色塊
# 提示
print(40*"-")
print("The Best Starting Word in WORDLE may is 'SOARE'")
print("for result, gray:0 yellow:1 green:2")
print(40*"-")
for i in range(5):
# 處理輸入食铐,記錄字母
guess = input("{0}:".format(i+1))
results = input("result:")
for n in range(len(results)):
if results[n] == "0":
fault = fault + guess[n]
elif results[n] == "1":
pos_wrong[n] = pos_wrong[n] + guess[n]
elif results[n] == "2":
right[n] = guess[n]
else:
print("bad input")
# 生成建議
temp_list = []
for word in words:
# 檢查灰色色塊匕垫,也就是錯誤的字母
flag = True
for f in fault:
if f in word:
flag = False
break
if not flag:
continue
for n in range(5):
# 檢查綠色色塊僧鲁,也就是正確的字母,字母和位置是否符合
if right[n] != "" and right[n] != word[n]:
flag = False
break
# 檢查黃色色塊象泵,也就位置不對的字母
if pos_wrong[n] != "":
for ps in pos_wrong[n]:
# 檢查是否有黃色色塊字母
if ps not in word:
flag = False
break
else:
#檢查是否還在錯誤的位置
if word.index(ps) == n:
flag = False
break
if not flag:
continue
temp_list.append(word)
print("suggest:", temp_list)
word = temp_list.copy()
print(40*"-")
小結(jié)
本身寫個程序是為了練練手寞秃,滿足一下寫代碼的快樂。 經(jīng)過實際測試偶惠,發(fā)現(xiàn)基本上到第三輪或者到第四輪猜測春寿,可以選擇的單詞就非常少了,輔助效果不錯忽孽。不過如果用這個程序解題绑改,那么解題的樂趣基本上也就沒有了。慎用兄一,哈哈厘线。usage.png
本文首發(fā)于 Wulu's Blog
原文鏈接:Python Wordle 解題小幫手