• Добро пожаловать на сайт - wlux.net!

    FAQ по форуму

    1. Все сообщения до группы местный проходят модерацию от 1 минуты до 24 часа

    2. Сообщения учитываються в следующих разделах: Читать

    3.Что-бы скачать вложение нужно 2 сообщения.

    4.Личные переписки работают только с Администрацией форума

    5. Запрещено: Просить скрытый текст , спам, реклама, скам, ддос, кардинг и другая чернуха, нарушать любые законы РФ/СНГ = бан аккаунта

    6. Внимание! Мы не удаляем аккаунты с форума! Будьте внимательны ДО регистрации! Как удалить аккаунт на форуме?!

    5.Не понимаю, как и что тут работает у вас?!Как создавать темы, писать сообщения, как получать реакции. Почему не засчитывает сообщения. Все ответы здесь

This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Пытался ли кто-нибудь научить компьютер играть в шахматы?

P Оффлайн

Petrfom

Участник
LV
2
 
13.01.2024
0
1
25
Награды
3
36

Репутация:

  • Автор темы
  • #1
Наверняка многие, встретившись на разных этапах своей жизни с шахматами и программированием, задумывались над тем, чтобы как-то соединить эти две стихии самостоятельно. Стараясь игнорировать любую информацию, которую я до этого слышал о принципах шахматных движков, я попробовал с нуля научить этой игре Matlab (зацепил его в последних классах школы, тогда даже получилось реализовать убогий интерфейс для змейки).

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

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

Бестолковость своей задумки я понял достаточно быстро. Изначально желая не портить свои зарисовки знанием существующих принципов, я в итоге два дня просидел за статьями, описывающими теорию создания (настольно-)игрового движка. Во-первых, опора на базу партий невозможна — ее просто нет. Если в крестиках-ноликах на девяти клетках все возможные партии можно сыграть за обедом, то в шахматах, внезапно, все чуточку сложнее. Наличие миллионов разветвлений уже после нескольких ходов заставляет нас прибегнуть к такому механизму, как анализ позиции. И тут я растерялся, так как просто не знал, как к этому делу подступиться. Если мой шахматный уровень позволял мне просчитывать, какие два хода следующими сделает мой дед, то попытка прописать подобный просчет в программе уже на следующем ходе теряла свою актуальность.

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

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

Поиск по форуму

Похожие темы:

Данный сайт использует cookie. Вы должны принять их для продолжения использования. Узнать больше....