用 Wolfram 的方式來(lái)玩 Wordle(編寫(xiě)程序包順帶記單詞)

用 Wolfram 的方式來(lái)玩 Wordle(編寫(xiě)程序包順帶記單詞)的圖1

當(dāng)任何人在需要一個(gè)簡(jiǎn)單、友好的挑戰(zhàn)游戲來(lái)暫時(shí)逃避其他現(xiàn)實(shí)問(wèn)題時(shí),都可以去試試免費(fèi)在線游戲 Wordle(https://www.powerlanguage.co.uk/wordle/)。

Josh Wardle(https://powerlanguage.co.uk/)發(fā)明了 Wordle并于 2021 年 10 月進(jìn)行全球發(fā)布。然后,2022 年 1 月 31 日有消息稱,他已將該應(yīng)用程序賣(mài)給了《紐約時(shí)報(bào)》(https://www.engadget.com/wordle-nyt-new-york-times-sale-215510156.html),預(yù)計(jì)后者最終會(huì)將其發(fā)布在付費(fèi)墻中。

游戲的概念簡(jiǎn)單而引人入勝:您需要在六次機(jī)會(huì)中猜測(cè)一個(gè)五個(gè)字母的單詞。以下是 Wordle 網(wǎng)站上的規(guī)則:

用 Wolfram 的方式來(lái)玩 Wordle(編寫(xiě)程序包順帶記單詞)的圖2

每天只發(fā)布一個(gè)新的 Wordle 挑戰(zhàn)是一個(gè)明智的設(shè)計(jì)選擇——Wordle 每天僅提供一次新游戲,這樣能保護(hù)您不會(huì)控制不住想要一遍又一遍地玩游戲……

(至少是這樣想的。)

( 佛系周末的挑戰(zhàn) )
THE CHALLENGE OF A SLOW WEEKEND

一月初,我和幾天前給我介紹了 Wordle 的女兒發(fā)短信:

我和 Wolfram Solutions(https://www.wolframsolutions.com/)的同事為客戶構(gòu)建了一些相當(dāng)大且復(fù)雜的用戶界面。(最新的一個(gè)界面僅是用于用戶界面部分的 Wolfram 語(yǔ)言代碼就達(dá)到了大約 25000 行。)因此,在快速組合 UI 方面,我非常有信心。我決定接受挑戰(zhàn),同時(shí)也可以在那個(gè)佛系周末保持忙碌。

幾個(gè)小時(shí)后,我給女兒回復(fù)了一個(gè)初始版本:

用 Wolfram 的方式來(lái)玩 Wordle(編寫(xiě)程序包順帶記單詞)的圖3

你可以看到,我受到了來(lái)自單詞拼寫(xiě)的挑戰(zhàn)。(這個(gè)在后面會(huì)提到,以及會(huì)提到我女兒是一位語(yǔ)言病理學(xué)家的事情......)

現(xiàn)在,在創(chuàng)建界面的過(guò)程中,我不可避免違反了“一天只有一個(gè) Wordle”這一神圣不可侵犯的原則。我只能希望任何對(duì)此上癮的人都可以原諒我。

我在 Wolfram 社區(qū)寫(xiě)了一篇文章(https://community.wolfram.com/groups/-/m/t/2445356,譯者注:該社區(qū)文章有更詳盡的代碼分享及其他)分享我的代碼,這樣讀者可以使用代碼以及應(yīng)用程序本身。(您可以閱讀完整代碼并從該帖子下載包,以及查看其他人的評(píng)論。)這也是設(shè)計(jì)和編寫(xiě) Wolfram 語(yǔ)言包(https://reference.wolfram.com/language/tutorial/ModularityAndTheNamingOfThings.html)的一種方法的示例。

在接下來(lái)的一周里,我花了一些時(shí)間調(diào)整應(yīng)用程序,讓用戶選擇單詞被限制在哪個(gè)詞性,以及讓他們選擇單詞的長(zhǎng)度是 4、5、6 還是 7 個(gè)字符長(zhǎng)。

(在 Wolfram 社區(qū)上這個(gè) GIF 的原始版本中,應(yīng)用程序的“speech”拼寫(xiě)錯(cuò)誤為“speak”;鑒于我女兒是語(yǔ)言病理學(xué)家,我本應(yīng)該會(huì)發(fā)覺(jué)這一錯(cuò)誤!而且她沒(méi)有說(shuō)出來(lái)也不是她的錯(cuò),因?yàn)槲疫€沒(méi)有給她更新的版本。)

與最初的 Wordle 相比,這些額外的功能部分與其原本設(shè)計(jì)(出色的)簡(jiǎn)單特色格格不入。但這同時(shí)也說(shuō)明 Wolfram 語(yǔ)言的算法和用戶界面功能都可以讓您探索各種變化和方法來(lái)滿足您的需求。

MWordle.m 安裝包包含 400 多行 Wolfram 語(yǔ)言代碼。網(wǎng)頁(yè)版的 JavaScript 代碼遠(yuǎn)不止于此,但坦白說(shuō),它比我編寫(xiě)的 Wolfram 語(yǔ)言版本具有更多功能。使用 Wolfram 語(yǔ)言的海量資源,您可以無(wú)限且高效地自定義、修改和調(diào)試版本。這是一個(gè)佛系的周末,在我創(chuàng)建了第一個(gè)版本之后,我仍然有足夠的時(shí)間洗衣服并趕上 Netflix 的節(jié)目,然后再回來(lái)調(diào)整代碼。


(還有更多……)

AND MORE...

除了編寫(xiě)小游戲之外,還有一些有趣的問(wèn)題是關(guān)于玩 Wordle 游戲的策略。正如預(yù)期的那樣,互聯(lián)網(wǎng)上有很多關(guān)于此的討論。如,第一次猜測(cè)時(shí)最好使用哪些詞?如何優(yōu)化后續(xù)猜測(cè)?等等等等…。

Arnoud Buzing (https://blog.wolfram.com/author/arnoud-buzing/)快速創(chuàng)建(https://www.wolframcloud.com/obj/arnoudb/DeployedResources/Data/Wordle-Word-List)了一個(gè) ResourceObject,其中包含 Wordle 的 Web 版本使用的實(shí)際單詞列表。(我的代碼通過(guò) WordData 函數(shù)因此使用了 Mathematica 的字典。)

雖然我個(gè)人更喜歡在玩游戲時(shí)希望游戲可以保留一絲神秘感,也希望在玩在線版本時(shí)忘記那些算法邏輯,但其實(shí)使用 Wolfram 語(yǔ)言探索它非常簡(jiǎn)單。像 Wordle 這樣的簡(jiǎn)單游戲可以被視為探索特定計(jì)算世界的起點(diǎn)。

這里有些例子。在我的 Wolfram 社區(qū)帖子中有人說(shuō):“我認(rèn)為最好根據(jù) WordData、字母頻率和字母位置頻率來(lái)計(jì)算 Wordle 的最佳起始詞是什么?!?/p>

所以我接受了挑戰(zhàn),并寫(xiě)了以下作為一個(gè)可能起點(diǎn)的例子——最初沒(méi)有考慮字母的位置。

以下是應(yīng)用程序中使用的所有五個(gè)字母的單詞:

共有7,517個(gè):

以下是這五個(gè)字母單詞的英文字母頻率排序:

那么,讓我們看看這五個(gè)字母的單詞列表中是否有任何單詞與頻率排序最高的五個(gè)字母匹配(并且要求單詞中沒(méi)有重復(fù)的字母):

只有一個(gè)!它還考慮了另一種可能的方法——嘗試使用盡可能多的元音。

讓我們稍微放寬約束,從頻率排序列表中最高的 nLetters 字符中提取內(nèi)容,但仍然要確保沒(méi)有重復(fù)的字母:

和上例一樣,從前五個(gè)字母開(kāi)始:

用 Wolfram 的方式來(lái)玩 Wordle(編寫(xiě)程序包順帶記單詞)的圖4

從前六個(gè)字母開(kāi)始:

用 Wolfram 的方式來(lái)玩 Wordle(編寫(xiě)程序包順帶記單詞)的圖5

從前七個(gè)字母開(kāi)始:

用 Wolfram 的方式來(lái)玩 Wordle(編寫(xiě)程序包順帶記單詞)的圖6

Arnoud 還寫(xiě)了一篇文章(https://towardsdatascience.com/tips-and-tricks-for-solving-wordle-efficiently-28ab67a52dbf),介紹了一種優(yōu)化您在完成 Wordle 挑戰(zhàn)時(shí)可能做出的猜測(cè)的方法。其中,他根據(jù)單詞中字母的位置考慮了字母頻率。

Peter Barendse (https://blog.wolfram.com/author/peter-barendse/)建議可以使用我在 MWordle 應(yīng)用程序中的代碼來(lái)訓(xùn)練智能代理來(lái)玩 Wordle。這也很有趣。

可能性是無(wú)窮無(wú)盡的,Wolfram 語(yǔ)言是探索 Wordle 計(jì)算世界(https://www.wolfram.com/wolfram-science/)的理想工具。

購(gòu)買(mǎi)軟件/免費(fèi)試用【13.1.0中英文 Wolfram 軟件】

請(qǐng)掃碼申請(qǐng)
用 Wolfram 的方式來(lái)玩 Wordle(編寫(xiě)程序包順帶記單詞)的圖7

登錄后免費(fèi)查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項(xiàng)目客服
  • 培訓(xùn)客服
  • 平臺(tái)客服

TOP