設(shè)置
  • 日夜間
    隨系統(tǒng)
    淺色
    深色
  • 主題色

程序員用腳戰(zhàn)勝棋友:樹莓派連鞋墊上作弊,懂技術(shù)真的為所欲為啊

量子位 2022/9/10 13:18:44 責(zé)編:長(zhǎng)河

有一個(gè)棋力很好的朋友,總是下不贏怎么辦?英國(guó)程序員小哥詹姆斯想出奇招:把電腦連在鞋墊上

比賽現(xiàn)場(chǎng),詹姆斯(左)看起來像是聚精會(huì)神地在思考下一步動(dòng)作,他的對(duì)手也沒發(fā)現(xiàn)哪里不對(duì)勁。但在桌面之下,他正努力用腳底板和樹莓派電腦溝通。

在沒有顯示器也不能發(fā)出聲音的情況下,輸入要靠鞋里安裝的壓力傳感器,輸出則靠振動(dòng)馬達(dá)。成功贏下一盤后,詹姆斯坦白自己其實(shí)是「用腳」贏的。

他的朋友歐文一開始還不信,直到他把身上的設(shè)備都掏出來,歐文才露出一副見了鬼的表情。

如何用腳戰(zhàn)勝對(duì)手

詹姆斯作弊的方法并不復(fù)雜:對(duì)手怎么走自己就在電腦上怎么走,輪到自己時(shí)再把電腦的走法在桌面上重復(fù)一遍。只不過沒有鼠標(biāo)鍵盤的情況下,輸入和反饋都要靠摩斯電碼。

國(guó)際象棋 8x8 的格子一般橫向編為小寫的 a-h、縱向編為 1-8,棋子則根據(jù)英文單詞首字母命名,如后(Queen)就是大寫 Q,象(Bishop)就是大寫 B,另外小寫 x 代表吃子。

這樣一來,每一步棋都可以寫成類似“Bxg2”(把象移動(dòng)到 g2 格子并吃子)的簡(jiǎn)短編碼形式,這也是一種通用的國(guó)際象棋記譜方法。

將記譜碼轉(zhuǎn)換成摩斯電碼的長(zhǎng)短脈沖組合后,就能像發(fā)電報(bào)一樣的節(jié)奏用腳踩踏板了。

雖然原理很簡(jiǎn)單,但操作起來還是很困難。程序員小哥詹姆斯遇到的實(shí)際問題就是腳踩編碼和感受振動(dòng)都不能出錯(cuò),一旦失誤桌面上的棋盤局勢(shì)就和電腦里的不一樣了。

雖然電腦有悔棋返回上一步這個(gè)操作,但關(guān)鍵不一定能及時(shí)意識(shí)到錯(cuò)誤,等好幾步過后再想撤銷那就“無從下腳”了。

在第一盤棋中詹姆斯就把電腦的反饋給翻譯錯(cuò)了,他意識(shí)到后半盤沒有幫手只能靠自己了,最終輸給水平更高的歐文。第二盤棋詹姆斯其實(shí)也犯了同樣的錯(cuò)誤,但因?yàn)楫?dāng)時(shí)局面優(yōu)勢(shì)已經(jīng)很大,幾步之后歐文只能認(rèn)輸。

△ 詹姆斯出錯(cuò)時(shí)的局面

贏下一盤比賽后,詹姆斯向歐文坦白,并介紹了設(shè)備的具體細(xì)節(jié)。一臺(tái)樹莓派 Zero 只有信用卡大小,詹姆斯額外加裝了三個(gè)組件后也能裝進(jìn)褲兜里。

需要添加的有:讀取力敏電阻的數(shù)模轉(zhuǎn)換電路,控制震動(dòng)馬達(dá)的晶體管,以及減少震動(dòng)噪聲的可變電阻。

軟件方面他安裝了國(guó)際象棋程序 Stockfish,并自己寫了 Python 腳本和 Perl 腳本,用于翻譯摩斯電碼。為了贏下一盤棋,詹姆斯甚至還在褲兜里打了個(gè)洞,好讓信號(hào)線可以順著褲腿連到鞋上,也是很拼了。

而鞋墊則是他自己 3D 打印的,使用了有彈性的 TPU 塑料,甚至不會(huì)妨礙走路。

會(huì)有人在正經(jīng)比賽中用鞋作弊么?

雖然已經(jīng)贏了一次,但詹姆斯表示還沒玩過癮。下一步他打算把設(shè)備做得再隱蔽一些,到當(dāng)?shù)氐木瓢衫锶フM更多朋友。他計(jì)劃把所有設(shè)備都集成到一個(gè)電路板并配上電池和藍(lán)牙模塊,粘在鞋的內(nèi)底,這樣即使被搜身都不會(huì)露餡了。

詹姆斯還開玩笑說想招募一個(gè)水平還不錯(cuò)的人,讓他用這雙鞋看能不能真的贏一個(gè)世界冠軍回來。

雖然詹姆斯并不打算真的這樣做,但還是在網(wǎng)友之中掀起一番討論。正式比賽,真的可以這樣作弊么?有人指出,用電子設(shè)備作弊在棋牌比賽和賭場(chǎng)中已有多年歷史,甚至上世紀(jì)七十年代就有人在鞋里安裝過輪盤賭預(yù)測(cè)裝置。

不過對(duì)于國(guó)際象棋來說,用電腦作弊還有一個(gè)額外問題。電腦的思維方式畢竟和人類不一樣,沒準(zhǔn)就下出一手人類根本想不到的棋,在事后很容易被分析發(fā)現(xiàn)。

剛好最近就有這么一個(gè)例子。世界冠軍 Magnus Carlsen 在錦標(biāo)賽中輸給一位積分遠(yuǎn)不如他的對(duì)手,這名對(duì)手還有線上比賽的作弊史。雖然這次有沒有作弊行為還沒出調(diào)查結(jié)果,不過冠軍老哥直接宣布退賽了。

雖然吃瓜群眾對(duì)這場(chǎng)比賽中可能的作弊方式有諸多猜測(cè),某種振動(dòng)裝置的可能性最大,流傳比較廣的一個(gè)說法是…… 放在肛門里。

參考鏈接:

  • [1]https://incoherency.co.uk/blog/stories/sockfish.html

  • [2]https://news.ycombinator.com/item?id=32729105

  • [3]https://twitter.com/MagnusCarlsen/status/1566848734616555523

  • [4]https://twitter.com/Babble____/status/1567437910361751552

廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。

相關(guān)文章

關(guān)鍵詞:樹莓派國(guó)際象棋

軟媒旗下網(wǎng)站: IT之家 最會(huì)買 - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機(jī)APP應(yīng)用 魔方 最會(huì)買 要知