Разделы
Материалы

Программист собрал компьютер в ботинке, который позволяет обыграть в шахматы любого

Джеймс Стенли показал компьютер Sockfish противнику после выигрыша в шахматы

Компьютерные программы уже давно доказали, что умнее людей-шахматистов. Проблема лишь в том, как их незаметно использовать.

Американский программист Джеймс Стенли создал небольшой компьютер, который позволяет незаметно сжульничать и обыграть в шахматы даже лучших игроков. О проекте, получившем название Sockfish пишет портал "Хабр".

Sockfish созвучно со Stockfish AI — одной из лучших компьютерных программ для игры в шахматы. В названии компьютера содержится слово "Sock", что переводится с английского как носок — именно там и спрятана электроника.

Джеймс Стенли взял миниатюрный компьютер Raspberry Pi Zero и подключил его к специальному пульту с двумя кнопками и вибромотором. Положив устройство в карман, пользователь может с помощью ног нажимать на кнопки и вводить команды для Stockfish незаметно для окружающих, а с помощью вибрации — получать подсказки. Питается аппарат от USB-аккумулятора, которій также необходимо носить с собой.

Компьютер Sockfish для игры в шахматы
Компьютер Sockfish для игры в шахматы

На компьютере запущен скрипт Python (язык программирования), считывающий данные с контактов и загружающий их в ток ввода, который затем используется скриптом Perl. В свою очередь Perl считывает нажатия кнопок из потока ввода, реконструирует расположение фигур и запускает Stockfish, а затем записывает импульсы вибрации в свой поток вывода, после чего они передаются на контакты GPIO вторым скриптом Python.

Для испытания программист решил тайком использовать компьютер в игре со своим приятелем Оуэном Дэвисом. Джеймс Стенли уговорил соперника провести долгую игру с лимитом времени в 15 минут, ведь иначе не успевал бы вводить команды — на это требуется около 20 секунд.

По словам разработчика, все шло хорошо, пока он не перепутал команду от устройства и не поставил фигуру иначе, чем предложила программа. В следующем раунде Stockfish предложила сделать ход, который оказался против правил из-за иного расположения фигур. В итоге Джеймс Стенли решил продолжить партию самостоятельно и проиграл.

"В свою защиту скажу, что я был настолько поглощен взаимодействием с Sockfish, что едва понимал, что происходит на доске", — поделился он.

Во время матча-реванша Джеймс Стенли старался играть внимательнее, но все равно допустил несколько ошибок, поэтому был вынужден заново вводить последовательность ходов в программу. После очередной ошибки он решил продолжить без помощи Sockfish и выиграл, ведь к тому моменту завоевал преимущество на доске. Теперь Джеймс планирует создать более совершенный компьютер, который будет еще сложнее обнаружить.

Недавно шахматиста Ганса Ниманна заподозрили в мошенничестве во время игры с Магнусом Карлсеном — действующим чемпионом мира. После поражения последний отказался от участия в турнире Sinquefield Cup, а на следующих соревнованиях демонстративно сдался Ниманну, но продолжил соревноваться с другими соперниками.

Позже шахматный сайт Chess.com заявил, что Ганс Ниманн мог жульничать примерно в сотне онлайн-партий, в том числе в соревнования с призовым фондом. Исследователи сравнили ходы шахматиста с программами и обнаружили множество сходств.