有一個(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之家所有文章均包含本聲明。