Комп'ютерні програми вже давно довели, що розумніші за людей-шахістів. Проблема лише в тому, як їх непомітно використати.
Американський програміст Джеймс Стенлі створив невеликий комп'ютер, який дозволяє непомітно шахраювати й обіграти в шахи навіть найкращих гравців. Про проєкт, який отримав назву Sockfish, пише портал "Хабр".
Sockfish співзвучно зі Stockfish AI — однією з найкращих комп'ютерних програм для гри в шахи. У назві комп'ютера міститься слово "Sock", що перекладається з англійської як шкарпетка — саме там і захована електроніка.
Джеймс Стенлі взяв мініатюрний комп'ютер Raspberry Pi Zero та підключив його до спеціального пульта з двома кнопками та вібромотором. Поклавши пристрій у кишеню, користувач може за допомогою ніг натискати на кнопки та вводити команди для Stockfish непомітно для навколишніх, а за допомогою вібрації — отримувати підказки. Живиться апарат від USB-акумулятора, який також необхідно носити із собою.
На комп'ютері запущено скрипт Python (мова програмування), що зчитує дані з контактів і завантажує їх у струм введення, який потім використовується скриптом Perl. Зі свого боку, Perl зчитує натискання кнопок із потоку введення, реконструює розташування фігур і запускає Stockfish, а потім записує імпульси вібрації у свій потік виведення, після чого вони передаються на контакти GPIO іншим скриптом Python.
Для випробування програміст вирішив потай використовувати комп'ютер у грі зі своїм приятелем Оуеном Девісом. Джеймс Стенлі вмовив суперника провести довгу гру з лімітом часу 15 хвилин, адже інакше не встигав би вводити команди — на це потрібно приблизно 20 секунд.
За словами розробника, все йшло добре, поки він не переплутав команду від пристрою і не поставив фігуру не так, як запропонувала програма. У наступному раунді Stockfish запропонувала зробити хід, який виявився проти правил через інше розташування фігур. Зрештою Джеймс Стенлі вирішив продовжити партію самостійно та програв.
"На свій захист скажу, що я був настільки поглинений взаємодією із Sockfish, що ледве розумів, що відбувається на дошці", — поділився він.
Під час матчу-реваншу Джеймс Стенлі намагався грати уважніше, але все одно припустився кількох помилок, тому був змушений заново вводити послідовність ходів у програму. Після чергової помилки він вирішив продовжити без допомоги Sockfish і виграв, адже на той момент завоював перевагу на дошці. Тепер Джеймс планує створити досконаліший комп'ютер, який буде складніше виявити.
Нещодавно шахіста Ганса Німанна запідозрили у шахрайстві під час гри з Магнусом Карлсеном — чинним чемпіоном світу. Після поразки останній відмовився від участі у турнірі Sinquefield Cup, а на наступних змаганнях демонстративно здався Німанну, але продовжив змагатись з іншими суперниками.
Пізніше шаховий сайт Chess.com заявив, що Ганс Німанн міг шахраювати приблизно в сотні онлайн-партій, зокрема в змаганнях із призовим фондом. Дослідники порівняли ходи шахіста з програмами та зафіксували безліч подібностей.