瞽者善聽,聾者善視。絕利一源,用師十倍。
三返晝夜,用師萬倍。
-《陰符經》
Python-Chess這一系列已經很久沒有更新了,原因之一就是害怕這一項技術被用來開發連接器。其實是因為我懶了,便一直擱置到現在。
奈何到了今天,網絡比賽中作弊的情況竟越發嚴重,我也打算從技術角度來討論一下這件事情。
簡單來說,連線器是一個能夠實現自動行棋的程序。並且,它的優勢在於目前常用的查軟機制對於它幾乎起不到作用。
我們通常認為的使用軟體作弊是在旁邊放置一個安裝有西洋棋軟體的設備,在網賽平臺上走一步棋後,隨即在軟體上輸入相應走法,再根據軟體的反饋提示來選擇下一步棋。
但是顯然,手動作弊的辦法有一個致命的缺點:速度太慢。這也正是為什麼有一些使用軟體的棋手在時間緊張後表現得手足無措,漏著頻出。而賽後一盤1+0也成為了檢驗是否作弊的民間偏方,正所謂手速限制了我的水平。
連線器作為一個程序完全不會害怕比速度,並且老實說,速度還能比你更快。
程序在後臺運行不需要人的手動操作,攝像頭也拍不到什麼。可能只需要正常點擊滑鼠就實現了走棋。
https://www.youtube.com/watch?v=Zi47GBArpPE
當然在最後,作者說,他因為有使用軟體的嫌疑被chess.com封號了。
https://github.com/m-turambar/OpenCV-Chess-Drone
想要知道使用連線器的問題在哪裡 我們要明白它的原理是什麼。
首先運用了圖像處理的opencv庫(非常有名),然後截圖並且生成fen字符串,此前的文章講過相關內容。
之後調用引擎進行計算(這個我也講過),並在最後控制滑鼠進行移動(這個我倒是沒講)。
當然這只是一個大致的思路,其中每一步都需要一定的編程水平才能解決。所以從某種程度上說,連線器目前的危害還不大可能是因為作弊er們技術水平的不足。
這一點會導致使用連線器的棋手可能在某些時候走出不可思議的臭棋,僅僅是因為圖片識別錯誤。
常常見於某一步必須回應的棋(逼著),對方也要用相同的時間走出來,每一步時間大致相同。
關於連線器的內容,暫且簡單講到這裡。
千言萬語一句話,如果對Python和西洋棋感興趣的話,
那就多關注關注我吧。