Писать игровой AI очень интересно и увлекательно - не раз убеждался в этом на личном опыте. Недавно, случайно наткнувшись на код своего старого проекта шахматной программы, решил его немного доработать и выложить на GitHub. А заодно рассказать о том, как он создавался и какие уроки преподал мне в процессе работы.
Рубрика «шахматы» - 3
Шахматы на Delphi. Как я изобретал велосипед
2021-04-10 в 19:44, admin, рубрики: AI, chess, Delphi, Gamedev, Pascal, геймдев, логические игры, разработка игр, шахматыПока в мире гремел сериал «Ход королевы», мы пилили сервис, чтобы дети учились шахматам на удобной платформе
2021-02-09 в 12:03, admin, рубрики: mvp, Блог компании Skyeng, игры, логические игры, Разработка веб-сайтов, разработка продукта, удаленная работа, Управление продуктом, Управление проектом, шахматы
Мой дед неплохо играл в шахматы. Буквально сутками просиживал за доской. В детстве я часто приезжал к нему - так постепенно и полюбил игру.
О шахматах. И не только
2020-12-02 в 5:56, admin, рубрики: alphazero, Блог компании Huawei, высокая производительность, искусственный интеллект, история, логические игры, шахматыСегодня не будет тяжких раздумий о настоящем и будущем компьютерной индустрии. Сегодня я хочу рассказать об одном из своих хобби. Я играю в массу разных игр: футбол, хоккей, теннис (большой и маленький), покер, преферанс, биржа и т.п. Но мой “профильный” вид спорта — шахматы. Дальше кандидата в мастера моя карьера на этом поприще не продвинулась, но любовь к древней игре я сохраняю уже 4 десятка лет. Интересно, что она вполне “ужилась” с другим увлечением – программированием, породив интерес к искусственному интеллекту и теории игр. И разумеется, последние прорывы в этой области связанные с феноменальными успехами проекта AlphaZero не могли пройти мимо меня.

Тогда я просто сидел и восхищался партиями AlphaZero против Stockfish. А сейчас вернулся к теме в связи с задачей оптимизации нейронных сетей, которой иногда приходится заниматься по работе (увы, меньше чем хотелось бы). Как мне кажется, задачи эти могут оказаться тесно связанными, поэтому захотелось как то систематизировать свои идеи.
Читать полностью »
Как игры стали движущей силой двух школ исследований ИИ
2020-09-03 в 6:30, admin, рубрики: Блог компании VDSina.ru — хостинг серверов, будущее здесь, ИИ, искусственный интеллект, каспаров, машинное обучение, Научно-популярное, шахматыСегодня мир штурмом захватывает ИИ, основанный на глубоком обучении и нейронных сетях. Однако многие алгоритмы, управляющие поиском в вебе и построением автомобильных маршрутов, гораздо старше, они уходят корнями в так называемый «старый добрый ИИ», также известный как «символический» искусственный интеллект, являвшийся основным видом ИИ с 1950-х до конца 1990-х. Затмевание символического ИИ глубинным обучением иллюстрируется двумя важнейшими вехами в истории искусственного интеллекта, каждая из которых связана с победой ИИ-системы над лучшим игроком-человеком.
Чемпион мира Гарри Каспаров победил компьютер IBM Deep Blue в 1996 году, но потерпел поражение в 1997 году, проиграв со счётом 4 к 2.
Читать полностью »
4 угла хорошо, а 6 лучше: гексагональные шахматы в консоли и с ботом
2020-08-21 в 10:25, admin, рубрики: c++, hse spb, ncurses, альфа-бета отсечение, Блог компании Питерская Вышка, гексагональная сетка, Занимательные задачки, интеллектор, Программирование, Учебный процесс в IT, шахматыПривет!
Мы учимся на первом курсе бакалавриата «Прикладная математика и информатика» в Питерской Вышке. Во время работы над семестровым командным проектом по С++ мы решили написать компьютерную версию Интеллектора с ботом — шахматную игру на гексагональной доске с особыми фигурами.
В этой статье мы расскажем о том, как шла разработка игры, как приручить гексагональную доску, как можно рисовать в командной строке, а также как мы сделали бота, которого почти не можем победить.

Шахматы как динамическая система
2020-01-26 в 13:12, admin, рубрики: Алгоритмы, Анализ и проектирование систем, Занимательные задачки, логические игры, Научно-популярное, общая теория систем, системный анализ, системный подход, системология, системы, Стратегия, шахматыПредисловие
Существует такой тип людей, для которых исследования и создание сложных и функциональных систем — высшая степень удовольствия. К такому типу можно отнести и меня. Любой целостный объект, обладающий единством всей своей структуры, материального, социального и абстрактного миров обладает системностью: человек, семья (да и любой социальный институт), биосфера, химические вещества и пр. Системность присутствует даже в неявных вещах.
Очень давно, благодаря энтузиазму моего деда, я научился играть в шахматы. Вообще, шахматы — это одна из самых древних синтетических системных моделей, представленных в оболочке настольной игры. В данной статье будет произведен системный анализ шахмат, как детерминированной (предопределенной) системы, а именно: исследование структуры связанных шахматных фигур, интегративного свойства всех фигур и отдельных «изолированных» структур и уровня доминирования на доске как отдельных фигур, так и отдельного цвета (белых или черных).
Читать полностью »
Ход конём по битам. Шахматный Bitboard
2019-11-19 в 13:16, admin, рубрики: bitboard, bitwise, Алгоритмы, битовая маска, биты, Блог компании OTUS. Онлайн-образование, генератор ходов, клетки, конь, Программирование, шахматыДобрый день. Эту статью я написал специально для студентов курса «Алгоритмы для разработчиков» в OTUS и сегодня хочу поделиться ею со всеми читателями нашего блога.
Шахматный конь стоит на шахматной доске и задумчиво смотрит в шахматную даль.
Сколько разных ходов он может сделать?
Хвала изобретателю шахмат, на доске 64 клетки.
Хвала архитектору компьютеров — у типа ulong тоже 64 бита.
Это же надо было случиться такому совпадению!
Напрашивается гениальная идея — хранить всю доску в одном целом числе! Для этого решения существует даже специальный термин — Bitboard — битовая доска.
Так как же быстро найти количество ходов шахматного коня, используя эту идею?Читать полностью »
Dagaz: Эпизоды (часть 2)
2019-11-07 в 12:25, admin, рубрики: Dagaz, Дизайн игр, логические игры, настольные игры, разработка игр, шахматы— Один слон, одна колесница, пятеро пехотинцев и трое всадников составляют ПАТТИ, утроенное ПАТТИ составляет СЕНАМУКХУ,…
а десять АНИКИНИ составляют АКШАУХИНИ, и это есть самая крупная войсковая единица…
Генри Лайон Олди «Гроза в безначалье»
В прошлой статье я рассказывал о шашках и это не случайно. Шашечные игры, с их составными ходами, послужили основой проекта, составили его костяк. До сих пор, шашки подкидывают мне сюрпризы. Например, буквально на днях, мне довелось исправлять застарелый баг, связанный с опцией отложенного взятия. И вообще, как я уже говорил, шашечные игры сильно недооценены. Но одними лишь шашками дело не ограничивается…
Читать полностью »
AI supremacy: Leela Chess. Или про то, как полностью открытая нейросеть победила
2019-09-24 в 22:58, admin, рубрики: alphazero, Google, Nvidia, искусственный интеллект, логические игры, шахматыЧестно говоря, я очень разочарован хабром. Почему никто не осветил такую вещь, как победа нейросетевого подхода с полностью открытым кодом, а? И полностью открытыми нейросетевыми данными? Действительно, ну вот DeepMind Technologies описали как они обучали шахматный ИИ, играющий сам с собой… Только вот код там закрыт, а обучение происходило на кластерах Google, а не распределённо на Nvidia Turing c тензорными ядрами, как в данном случае. Почему мне самому приходится править английскую википедию (я там ZBalling), чтобы привлечь к этому внимание?
Ладно, что-то я переборщил с эмоциями, наверное. (По ссылке все же есть в комментах упоминания leela.) Это статья эксперимент: способ показать мне, как другая моя статья, излишне популярная, на мой взгляд, повлияет на эту.
Читать полностью »
Как используется странная инструкция popcount в современных процессорах
2019-09-11 в 19:49, admin, рубрики: HAMT, popcount, Алгоритмы, анб, Компиляторы, криптоанализ, криптография, нейросети, Процессоры, сжатые структуры данных, шахматыЭто псевдорасшифровка моей презентации на !!Con 2019.
В большинстве используемых сегодня процессорных архитектур есть инструкция под названием popcount
, сокращённо от 'population count'. Она делает следующее: подсчитывает количество установленных битов в машинном слове. Например (возьмём 8-битные слова для простоты), popcount(00100110)
равно 3, а popcount(01100000)
равно 2.
Вас это может сильно удивить, как и меня, но это всё, что она делает! Кажется не очень полезным, правда?
Читать полностью »