程序员用脚战胜棋友:树莓派连鞋垫上作弊,懂技术真的为所欲为啊
有一个棋力很好的朋友,总是下不赢怎么办?英国程序员小哥詹姆斯想出奇招:把电脑连在鞋垫上。
比赛现场,詹姆斯(左)看起来像是聚精会神地在思考下一步动作,他的对手也没发现哪里不对劲。但在桌面之下,他正努力用脚底板和树莓派电脑沟通。
在没有显示器也不能发出声音的情况下,输入要靠鞋里安装的压力传感器,输出则靠振动马达。成功赢下一盘后,詹姆斯坦白自己其实是「用脚」赢的。
他的朋友欧文一开始还不信,直到他把身上的设备都掏出来,欧文才露出一副见了鬼的表情。
如何用脚战胜对手
詹姆斯作弊的方法并不复杂:对手怎么走自己就在电脑上怎么走,轮到自己时再把电脑的走法在桌面上重复一遍。只不过没有鼠标键盘的情况下,输入和反馈都要靠摩斯电码。
国际象棋 8x8 的格子一般横向编为小写的 a-h、纵向编为 1-8,棋子则根据英文单词首字母命名,如后(Queen)就是大写 Q,象(Bishop)就是大写 B,另外小写 x 代表吃子。
这样一来,每一步棋都可以写成类似“Bxg2”(把象移动到 g2 格子并吃子)的简短编码形式,这也是一种通用的国际象棋记谱方法。
将记谱码转换成摩斯电码的长短脉冲组合后,就能像发电报一样的节奏用脚踩踏板了。
虽然原理很简单,但操作起来还是很困难。程序员小哥詹姆斯遇到的实际问题就是脚踩编码和感受振动都不能出错,一旦失误桌面上的棋盘局势就和电脑里的不一样了。
虽然电脑有悔棋返回上一步这个操作,但关键不一定能及时意识到错误,等好几步过后再想撤销那就“无从下脚”了。
在第一盘棋中詹姆斯就把电脑的反馈给翻译错了,他意识到后半盘没有帮手只能靠自己了,最终输给水平更高的欧文。第二盘棋詹姆斯其实也犯了同样的错误,但因为当时局面优势已经很大,几步之后欧文只能认输。
△ 詹姆斯出错时的局面
赢下一盘比赛后,詹姆斯向欧文坦白,并介绍了设备的具体细节。一台树莓派 Zero 只有信用卡大小,詹姆斯额外加装了三个组件后也能装进裤兜里。
需要添加的有:读取力敏电阻的数模转换电路,控制震动马达的晶体管,以及减少震动噪声的可变电阻。
软件方面他安装了国际象棋程序 Stockfish,并自己写了 Python 脚本和 Perl 脚本,用于翻译摩斯电码。为了赢下一盘棋,詹姆斯甚至还在裤兜里打了个洞,好让信号线可以顺着裤腿连到鞋上,也是很拼了。
而鞋垫则是他自己 3D 打印的,使用了有弹性的 TPU 塑料,甚至不会妨碍走路。
会有人在正经比赛中用鞋作弊么?
虽然已经赢了一次,但詹姆斯表示还没玩过瘾。下一步他打算把设备做得再隐蔽一些,到当地的酒吧里去整蛊更多朋友。他计划把所有设备都集成到一个电路板并配上电池和蓝牙模块,粘在鞋的内底,这样即使被搜身都不会露馅了。
詹姆斯还开玩笑说想招募一个水平还不错的人,让他用这双鞋看能不能真的赢一个世界冠军回来。
虽然詹姆斯并不打算真的这样做,但还是在网友之中掀起一番讨论。正式比赛,真的可以这样作弊么?有人指出,用电子设备作弊在棋牌比赛和赌场中已有多年历史,甚至上世纪七十年代就有人在鞋里安装过轮盘赌预测装置。
不过对于国际象棋来说,用电脑作弊还有一个额外问题。电脑的思维方式毕竟和人类不一样,没准就下出一手人类根本想不到的棋,在事后很容易被分析发现。
刚好最近就有这么一个例子。世界冠军 Magnus Carlsen 在锦标赛中输给一位积分远不如他的对手,这名对手还有线上比赛的作弊史。虽然这次有没有作弊行为还没出调查结果,不过冠军老哥直接宣布退赛了。
虽然吃瓜群众对这场比赛中可能的作弊方式有诸多猜测,某种振动装置的可能性最大,流传比较广的一个说法是…… 放在肛门里。
1.本站资源都是白菜价出售,同样的东西,我们不卖几百,也不卖几十,甚至才卖几块钱,一个永久会员能下载全站100%源码了,所以单独购买也好,会员也好均不提供相关技术服务。
2.如果源码下载地址失效请/联系站长QQ进行补发。
3.本站所有资源仅用于学习及研究使用,请必须在24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担。资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您权益请联系本站删除!
4.本站站内提供的所有可下载资源(软件等等)本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发);但本网站不能保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug;同时本站用户必须明白,【源码源码ui网】对提供下载的软件等不拥有任何权利(本站原创和特约原创作者除外),其版权归该资源的合法拥有者所有。
5.请您认真阅读上述内容,购买即以为着您同意上述内容。
源码UI网 » 程序员用脚战胜棋友:树莓派连鞋垫上作弊,懂技术真的为所欲为啊