С потайным компьютером в ботинках можно обыграть даже гроссмейстера / Хабр
«Запатентовано» уже немало способов шахматного жульничества: кто-то использует телефоны, примотанные к ногам скотчем, и штуки вроде пультов от телевизора, другие просто выходят в туалет, чтобы подсмотреть варианты хода на телефоне. И это не говоря о случаях с неочевидным и лишь отчасти подтвержденным читерством, вроде недавнего скандала с гроссмейстером Хансом Ниманном.
Программист Джеймс Стэнли* придумал еще один способ выигрывать в шахматы. Миниатюрный компьютер Raspberry Pi Zero, лежащий у него в кармане, подключен к нескольким кнопкам и вибромоторам в его ботинках, так что он может тайком обмениваться данными с шахматным движком на базе Pi. Ноги идеально подходят для этой цели: это единственная часть тела, с помощью которой при известной степени ловкости можно проделывать сложные манипуляции незаметно для окружающих.
Джеймс назвал этот проект Sockfish, так как в качестве интерфейса для обмена данными с шахматным движком Stockfish используются его носки. Рассказ автора о подробностях эксперимента читайте под катом.
*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.
Готовлюсь к партии
Итак, каждый мой внутриботиночный пульт оборудован двумя резистивными датчиками усилия и одним вибромотором. Датчики усилия используются в качестве кнопок, с помощью которых я ввожу ходы противника. Вибромоторы обеспечивают тактильную обратную связь для подтверждения нажатий на кнопки и передают мне подсказки шахматного движка.
Во вторник вечером мне наконец представился случай пустить Sockfish в ход против ничего не подозревающего реального противника — Оуэна, который играет в шахматы гораздо лучше меня. Я уговорил его сыграть партию с пятнадцатиминутным лимитом времени, что дольше, чем в блицах и суперблицах, которые мы обычно играем, но иначе я бы не успевал вводить ходы пальцами ног.
Проводим первую игру
Оуэн не мог взять в толк, почему мне потребовалось целых 20 секунд напряженных размышлений, чтобы сделать первый ход. В итоге он предположил, что я, должно быть, «репетировал» и теперь старался сосредоточиться изо всех сил, чтобы вспомнить теорию. Отчасти он был прав: ввод данных с помощью Sockfish и расшифровка ответных сигналов требовали высочайшей степени концентрации! Я обнаружил, что, жульничая с Sockfish, я вынужден сосредотачиваться гораздо сильнее, чем играя в шахматы по-честному. Может, я играл бы лучше, если бы всегда был таким внимательным.
Все шло хорошо, пока Sockfish не предложил мне сделать ход против правил. Игра (в представлении Sockfish) шла так: https://lichess.org/cmcYJF7G (я играл черными). Программа хотела, чтобы я сыграл 20… Qxe6.
Но на настоящей доске все было иначе. Руари был зрителем, он знал, в чем подвох, и даже ухитрился записать часть игры. Судя по его видео, положение фигур было такое:
Отличие от варианта Sockfish состоит в том, что моя коневая пешка (g) переместилась на g6, а мой белопольный слон не забрал фигуру на g2.
Я думаю, это произошло из-за того, что когда компьютер попросил меня сыграть Bxg2, я вместо этого пошел на g6. Хотя эта ошибка и выглядит дико, она вполне объяснима: обычно Sockfish сообщает мне начальную и конечную клетки моего хода, но поскольку на g2 можно было пойти только одной фигурой, Sockfish сообщил мне лишь конечную клетку. Поэтому программа дала команду g2, но я перепутал ее с g6. Это произошло потому, что «2» передается как две коротких вибрации на правой ноге, а для экономии времени «6» передается как одна длинная вибрация (означающая «5»), за которой следует короткая. Я просто принял первую короткую вибрацию на правой ноге за длинную и решил, что должен пойти на g6.
Возможно, эта схема расшифровки вибраций окажется полезной (а может и нет):
Как бы там ни было, играя при помощи Sockfish, я оказался в пролете, и пришлось выкручиваться самому.
Вместо того чтобы взять ферзя на е6, сыграв против правил (что вряд ли сошло бы мне с рук), я прикрылся от шаха ладьей. Это было крайне глупо с моей стороны! Я просто потерял ладью и ничего не получил взамен. В свою защиту скажу, что я был настолько поглощен взаимодействием с Sockfish, что едва понимал, что происходит на доске. Вскоре мы закончили партию, и я сдался при таком расположении фигур:
Проводим вторую игру
К счастью, Оуэн согласился на матч-реванш.
На этот раз Руари снял почти всю игру. Помню, я паниковал, что на видео будет видно, как я ерзаю на стуле, но все выглядело так, как будто я просто напряженно думаю. Едва ли со стороны можно было догадаться, что ботинки у меня с начинкой.
В какой-то момент игры я ввел ошибочные данные, но заметил это и успел все исправить. На видео было видно, как я выругался, крепко задумался на 30 секунд, а потом рассмеялся и попросил Оуэна напомнить мне пару предыдущих ходов. Удивительно, что он ничего не заподозрил.
70 секунд я орудовал пальцами ног, отменяя и переделывая ходы (при этом стараясь вести себя естественно), пока в конце концов не убедился, что восстановил позицию, после чего продолжил играть, издав довольно громкое «фух!» и заметив, что мне нужно быть внимательнее.
К сожалению, через пару ходов все опять пошло наперекосяк. Sockfish снова попросил меня сделать ход не по правилам. Для программы, позиция на доске была такой:
Но на самом деле фигуры стояли так:
По сути 27… Qxe1 и 28. Пока я все отменял и переделывал, ход Rxe1 каким-то образом пропал из Sockfish. Должно быть, я отыграл на 1 полуход дальше назад, чем было нужно, и не смог восстановить положение на доске. В этой позиции Sockfish предлагал мне сыграть Rd8+, но поскольку у меня не было ладьи на линии d, сделать это было затруднительно. Я заявил, что пошел «не в ту степь» (не объясняя, что это значит), и стал играть без помощи программы.
К счастью, у меня было преимущество в целого ферзя, и я выиграл без особого напряга – Оуэн сдался через несколько ходов. Не совсем тот успех, на который я рассчитывал, но, по крайней мере, это была победа! Можно определенно сказать, что Sockfish выигрывает в 50% партий.
Открываю тайну
Сразу же после победы я объяснил Оуэну, как мне удалось его обыграть. Он отказывался верить, пока я не показал ему два внутриботиночных пульта и карманный компьютер. В целом, он не особо на меня разозлился.
Я сказал ему, что собираюсь найти «внушающего доверие» шахматиста, который с помощью моего изобретения сможет выиграть чемпионат мира, но он ответил, что это может «опорочить игру», и он обязательно меня сдаст. Впрочем, такой сценарий и вправду лучше подходит для экранизации на Netflix, чем для воплощения в жизнь.
Подробности
В моем кармане лежит пластиковая коробка, внутри которой Raspberry Pi Zero, 4-канальный АЦП для считывания сигналов резистивных датчиков усилия, несколько транзисторов для переключения питания вибромоторов и по одному подстроечному резистору на каждый вибромотор для регулировки силы вибрации. Без подстроечных резисторов моторы были бы слишком шумными и могли бы (если так можно выразиться) испортить всю игру. Вот что находится внутри пластиковой коробки:
Также в моем кармане лежит USB-аккумулятор для работы Pi-компьютера.
На Pi работает скрипт Python, который считывает данные с контактов GPIO и пишет их в поток вывода stdout
, который используется скриптом Perl. В свою очередь Perl считывает нажатия кнопок из потока ввода stdin
, реконструирует расположение фигур и запускает Stockfish, а затем записывает импульсы вибрации в свой поток вывода stdout
, после чего они передаются на контакты GPIO вторым скриптом Python.
(Зачем такая навороченная архитектура? Я предпочел бы написать программу на Perl, но во всех примерах Raspberry Pi GPIO используется Python… поэтому так было проще).
Вся эта система работает внутри интерфейса с параметром -L
, так что вывод данных регистрируется для последующего просмотра. Система запускается командой /etc/rc.local
при включении компьютера.
Если во время загрузки компьютера внутриботиночные пульты подключены, то один из вибромоторов «залипает» около минуты, потому что контакт GPIO, который управляет мотором, активируется напряжением +5 В во время загрузки Pi. На самом деле это не важно, но вы можете почувствовать, что в течение минуты вибрация становится слабее по мере нагревания и увеличения сопротивления.
С помощью паяльника я проделал отверстие в накладном кармане брюк, чтобы пропустить провода внутри штанин.
Первоначально я использовал 4-контактные разъемы TRRS для подключения компьютера к ботинкам, но обнаружил, что они очень хлипкие и ненадежные. Я заменил их на 4-контактные водонепроницаемые разъемы для электровелосипедов, которые работают гораздо лучше и ненамного больше по размеру.
Сначала я печатал внутриботиночные пульты из PLA-пластика. Но он оказался слишком жестким, что затрудняло ходьбу. Потом я перешел на гибкий TPU-пластик, который гораздо лучше подходит для моих целей. Кроме того, изначально я использовал обычные микропереключатели, которые повреждались во время ходьбы. Заменив их на резистивные датчики усилия, я не только решил эту проблему, но и получил дополнительное преимущество – возможность регулировать силу активации на программном уровне.
Sockfish напоминает систему Eudaemons — компьютер, спрятанный в ботинках и предназначенный для мошенничества при игре в рулетку. Весьма впечатляющий проект, учитывая примитивную электронику 70-х годов прошлого века.
Послесловие: теперь я планирую разработать Sockfish-ng
Никому не говорите, но у меня уже есть планы по созданию улучшенной версии Sockfish, которую будет гораздо сложнее обнаружить!
Актуальный опытный образец годится только на то, чтобы пару раз разыграть приятелей в пабе. Чтобы выиграть чемпионат мира, нужно подходить к делу гораздо серьезнее.
Я думаю, что мы разместим компьютер и все другие электронные компоненты на одной печатной плате, вместо того, чтобы подключать компьютер к двум кускам макетной платы. По моей задумке, эта печатная плата должна размещаться в одном из ботинок. В каждом из ботинок можно было бы поместить отдельный аккумулятор и модуль Bluetooth (или аналогичный), а всю электронику – спрятать под стельками. Тогда даже полный обыск с раздеванием не выявил бы ничего запрещенного.
Интерфейс можно в целом оставить без изменений, только связь между «основным» и «вторичным» ботинками сделать беспроводной. Возможно, стоит позаботиться о том, чтобы длинные и короткие импульсы было легче различать.
Чтобы обнаружить обман, пришлось бы просветить обувь рентгеновскими лучами. Если есть риск такой проверки, то игрок может пройти контроль в обычной обуви, а его сообщник – пронести пару ботинок с секретом другим путем. Игрок поменяет обувь, после того, как ее уже просканировали.
***
Будем рады узнать в комментариях ваше мнение о статье. Может быть, у вас есть свои примеры технологических способов жульничества в шахматах и других соревновательных играх? Обязательно напишите об этом! А чтобы получать больше интересного контента, подписывайтесь на наш хабр-блог: мы регулярно переводим статьи зарубежных авторов и делимся экспертизой наших сотрудников.
Играть в шахматы с компьютером
• Новости шахмат в Telegram → |
Home Играть с компьютером
Мoscow Open-2022 |
Чемпионат России по шахматам 2022:. .. |
Турнир претендентов ФИДЕ 2022 |
Матч за звание чемпиона мира 2021 |
Турнир претендентов ФИДЕ 2020-2021 |
Матч за звание чемпионки мира (женщины)… |
Чемпионат мира по блицу (женщины) 2019 |
Чемпионат мира по блицу (мужчины) 2019 |
Чемпионат мира по быстрым шахматам… |
Финал детского Кубка России 2017 года |
Saint Louis Rapid & Blitz 2017 |
Женский чемпионат Тверской области |
Мемориал М.И.Чигорина — 2015 |
16-й турнир им. А.Карпова |
Детские первенства России 2015 |
Чемпионат мира по шахматам 2007 (архив) |
«Геленджик 2015» |
Все партии PGN
Top Standard/Players — August 2014
Rank | Name | Country | Rating |
1 | Магнус Карлсен | NOR | 2877 |
2 | Левон Аронян | ARM | 2805 |
3 | Фабиано Каруана | ITA | 2801 |
4 | Александр Грищук | RUS | 2795 |
5 | Хикару Накамура | USA | 2787 |
6 | Сергей Карякин | RUS | 2786 |
7 | Вишванатан Ананд | IND | 2785 |
8 | Веселин Топалов | BUL | 2772 |
9 | Максим Вашье-Лаграв | FRA | 2768 |
10 | Владимир Крамник | RUS | 2760 |
Все рейтинги → |
Архив новостей
- Октября, 2015
- Сентября, 2015
- Мая, 2015
Инопланетный космический корабль в. .. |
Пассажирский самолёт исчезает на… |
Сделан шаг к возвращению человека на Луну |
Тайна гигантской черепахи |
Кулинария будущего — съедобно будет всё! |
НЛО над большой бронзовой статуей… |
Огромный горящий НЛО в небе над Россией |
Огненные мечи появились в небе над Токио |
Таинственные сферы атаковали Нью-Йорк |
На Марсе нашли голову гуманоида |
Найден древнеримский мобильный туалет |
НЛО в ночном небе над Рейтауном |
Игра против компьютера в App Store
Описание
Играйте в шахматы бесплатно, но развивайте свое мышление, тактику и зрительную память, почему бы не попробовать?
Шахматы — интеллектуальная настольная игра, любимая многими людьми во всем мире.
* Характеристика:
— Играйте в шахматы с компьютером: есть 10 уровней, от новичка до очень сложного.
— Два игрока в автономном режиме: бросьте вызов своим друзьям прямо на вашем телефоне.
— Головоломки: тренируйтесь в шахматах, разгадывая более 1000 головоломок, чтобы улучшить свою тактику.
— Создайте головоломку: расставьте шахматную фигуру так, как вам нравится, и решите ее с друзьями или с помощью компьютера.
— Обзор: просмотрите импортированные шахматные фигуры, чтобы извлечь уроки из своего опыта и улучшить свои шахматные навыки.
Загрузите сейчас и поделитесь своим мнением и комментариями о шахматной игре. Мы улучшим качество приложения и ответим на любые запросы 24/7.
Спасибо за игру!
Версия 4.0
— Исправить некоторые ошибки
Рейтинги и обзоры
23 Оценки
Повтор и головоломки помогают мне учиться
Для новичка очень полезно пройтись по игре вперед и назад, чтобы увидеть, какие ошибки я сделал. Головоломки с проверкой за один ход также являются отличным способом начать видеть ходы.
Конечно, было бы неплохо иметь возможность платить за то, чтобы в приложении не было рекламы. Кажется, головоломки перестают работать корректно, если вы не просматриваете рекламу.
Спасибо за ваши комментарии к игре в шахматы 😍😍😍. Мы рассмотрим и добавим функцию удаления рекламы в следующих версиях. Чтобы компьютер помог решить головоломку, нужно увидеть рекламу. Хорошего дня!
Вполне нормально
Для полностью автономной игры в шахматы это хороший выбор. Мне он нравится намного больше, так как новый внешний вид. Мне нравится, что вы можете играть в автономном режиме, но, может быть, в будущем появится возможность играть онлайн с другими людьми? Я оценю это на пять звезд, но мне бы понравилось еще больше, если бы вы добавили онлайн-вариант.
Спасибо за прочтение, разработчики!!!!!
— шахматист
Спасибо братан за восторженные комментарии к игре в шахматы 😍😍😍. В следующей версии я снова обновлю значок и улучшу интерфейс, чтобы еще больше повысить удобство работы с пользователем. В то же время в будущем мы интегрируем больше вариантов онлайн-игры. Желаю тебе хорошего дня!
Много веселья
У меня профессиональный 1 уровень и при запуске новой игры вылетает. В остальном я развлекался. ♟
Разработчик Van Kien Bui указал, что политика конфиденциальности приложения может включать обработку данных, как описано ниже. Для получения дополнительной информации см. политику конфиденциальности разработчика.
Данные, не связанные с вами
Могут быть собраны следующие данные, но они не связаны с вашей личностью:
Методы обеспечения конфиденциальности могут различаться, например, в зависимости от используемых вами функций или вашего возраста. Узнать больше
Информация
- Продавец
- Ван Киен Буй
- Размер
- 119,6 МБ
- Категория
- Игры
- Возрастной рейтинг
- 4+
- Авторское право
- © GemmediaVN
- Цена
- Сайт разработчика
- Тех. поддержка
- Политика конфиденциальности