Сообщений: 9
Темы: 1
У нас с: Dec 2016
Рейтинг:
0
01-07-2017, 09:13 PM
(Последний раз сообщение было отредактировано 01-15-2017, 10:46 PM пользователем enko8086.)
Пишу свою любительскую шахматную программку. Ваш сайт мне очень помог в освоении UCI, FEN и т.п. Большое спасибо вам.
Скачать программу можно здесь: http://silchenko-e.narod.ru/chess.htm
В данный момент пытаюсь сделать подключение дебютных книг. Хочу попробовать формат polyglot. Как я понял, это самый популярный формат, к тому же на вашем сайте есть подробное описание.
Уже научил программу правильно вычислять key по позиции. Но вот с чтением файла проблема. Возможно, я скачал неправильные файлы. Не подскажете, где найти для тестирования проверенный файл формата polyglot?
Сообщений: 156
Темы: 12
У нас с: Jul 2016
Рейтинг:
5
(01-07-2017, 09:13 PM)enko8086 Писал(а): Пишу свою любительскую шахматную программку. Ваш сайт мне очень помог в освоении UCI, FEN и т.п. Большое спасибо вам.
В данный момент пытаюсь сделать подключение дебютных книг. Хочу попробовать формат polyglot. Как я понял, это самый популярный формат, к тому же на вашем сайте есть подробное описание. Уже научил программу правильно вычислять key по позиции. Но вот с чтением файла проблема. Возможно, я скачал неправильные файлы. Не подскажете, где найти для тестирования достоверно рабочий файл формата polyglot?
Пожалуйста
Насколько я помню, polyglot книги есть в программе SCID.
Сообщений: 9
Темы: 1
У нас с: Dec 2016
Рейтинг:
0
01-07-2017, 10:29 PM
(Последний раз сообщение было отредактировано 01-07-2017, 10:32 PM пользователем enko8086.)
А в чем можно составлять и редактировать книги polyglot? Кветка не понимает его?
Еще вопрос по FEN. Обязательно ли для установки поля взятия присутствие рядом пешки, которая может взять? В полиглоте, как я понял, обязательно. Поэтому и возник вопрос.
Сообщений: 156
Темы: 12
У нас с: Jul 2016
Рейтинг:
5
(01-07-2017, 10:29 PM)enko8086 Писал(а): А в чем можно составлять и редактировать книги polyglot? Кветка не понимает его?
Еще вопрос по FEN. Обязательно ли для установки поля взятия присутствие рядом пешки, которая может взять? В полиглоте, как я понял, обязательно. Поэтому и возник вопрос.
Кветка умеет читать дебютные книги Polyglot (если установлен плагин "Анализ"). Однако она не умеет сохранять их в таком формате.
В FEN присутствие рядом пешки не обязательно. Однако даже если взятие на проходе и не будет указано, никаких проблем для позиции в таком случае это создать не должно.
Сообщений: 9
Темы: 1
У нас с: Dec 2016
Рейтинг:
0
01-08-2017, 12:25 PM
(Последний раз сообщение было отредактировано 01-08-2017, 12:30 PM пользователем enko8086.)
Заработала книга. Максимум на сколько полуходов обычно составляют дебютные книги? Хочу поставить условие, чтоб программа не искала в книге, если уже сделано >N ходов.
Сообщений: 156
Темы: 12
У нас с: Jul 2016
Рейтинг:
5
01-09-2017, 08:56 PM
(Последний раз сообщение было отредактировано 01-25-2017, 07:47 AM пользователем kvetka.)
(01-08-2017, 12:25 PM)enko8086 Писал(а): Заработала книга. Максимум на сколько полуходов обычно составляют дебютные книги? Хочу поставить условие, чтоб программа не искала в книге, если уже сделано >N ходов.
Мы не специализируемся на дебютных книгах, так что точного ответа я Вам не дам. Попробуйте спросить на этом форуме. Там должны присуствовать составители дебютных книг. Я могу только предположить, что всё сильно зависит от конкретной книги. Порой в ней могут прокачиваться какой-нибудь один или несколько дебютов. Тогда глубина там может достигать и 20 ходов. А по другим направлениям она не будет превосходить пары ходов.
Сообщений: 9
Темы: 1
У нас с: Dec 2016
Рейтинг:
0
01-15-2017, 12:14 PM
(Последний раз сообщение было отредактировано 01-15-2017, 01:35 PM пользователем enko8086.)
Цитата:Я могу только предположить, что всё сильно зависит от конкретной книги.
Сделал возможность устанавливать этот предел с помощью setoption.
Еще есть вопросы по UCI.
Цитата:ponderhit
Означает, что противник походил именно так, как и предполагалось.
Эта команда должна посылаться только в том случае, если движок находился в режиме ожидания хода противника (включается командой "ponder"). После этого движок должен продолжить анализ позиции, только уже в обычном режиме.
Проблема такая возникла. Даже не понимаю, или это глюк Arena Chess, или я что-то не так понял.
-->1:position startpos moves e2e4
-->1:go movetime 20000
...
<--1:bestmove d7d5 ponder b1c3
-->1:position startpos moves e2e4 d7d5 b1c3
-->1:go ponder movetime 20000
...
-->1:ponderhit
... // движок продлевает время раздумья на 20сек и продолжает думать. Но я не всегда хочу ждать еще 20 сек, может противник думал над ходом b1c3 долго, и движок за это время подготовил хороший ответ, я хочу сразу после ponderhit прервать расчеты и получить ответ. Но если после ponderhit нажать красный крестик, то Арена не посылает движку stop. Приходится ждать 20 сек.
Цитата:info nodes #x
обработано #x позиций. Движок должен регулярно выдавать это сообщение.
Что понимается под числом обработанных позиций: все узлы игрового дерева или только те, на которых вызывается оценочная функция?
И еще. Где можно найти техническое описание формата эндшпильных баз для подключения к движку?
Сообщений: 156
Темы: 12
У нас с: Jul 2016
Рейтинг:
5
(01-15-2017, 12:14 PM)enko8086 Писал(а): Цитата:Я могу только предположить, что всё сильно зависит от конкретной книги.
Сделал возможность устанавливать этот предел с помощью setoption.
Еще есть вопросы по UCI.
Цитата:ponderhit
Означает, что противник походил именно так, как и предполагалось.
Эта команда должна посылаться только в том случае, если движок находился в режиме ожидания хода противника (включается командой "ponder"). После этого движок должен продолжить анализ позиции, только уже в обычном режиме.
Проблема такая возникла. Даже не понимаю, или это глюк Arena Chess, или я что-то не так понял.
-->1:position startpos moves e2e4
-->1:go movetime 20000
...
<--1:bestmove d7d5 ponder b1c3
-->1:position startpos moves e2e4 d7d5 b1c3
-->1:go ponder movetime 20000
...
-->1:ponderhit
... // движок продлевает время раздумья на 20сек и продолжает думать. Но я не всегда хочу ждать еще 20 сек, может противник думал над ходом b1c3 долго, и движок за это время подготовил хороший ответ, я хочу сразу после ponderhit прервать расчеты и получить ответ. Но если после ponderhit нажать красный крестик, то Арена не посылает движку stop. Приходится ждать 20 сек.
Цитата:info nodes #x
обработано #x позиций. Движок должен регулярно выдавать это сообщение.
Что понимается под числом обработанных позиций: все узлы игрового дерева или только те, на которых вызывается оценочная функция?
И еще. Где можно найти техническое описание формата эндшпильных баз для подключения к движку?
По поводу первого вопроса, точно не скажу, однако по-моему, это проблема Арены, а не движка. Моете попробовать запустить движок без оболочки и повторить все действия вручную. Если команда stop будет нормально работать, то это точно проблема Арены.
На счёт числа обработанных позиций, думаю, каждый разработчик движков может вкладывать в это что-то своё. Я бы предположил, что в это число обычно включают все позиции, которые хоть как-то рассматривались (в продвинутых движках некоторые позиции могут рассматриваться более пристально, чем другие).
Я не уверен, что где-то можно найти подробное описание формата эндшпильных баз. Наиболее популярный формат сейчас - syzygy. Для него есть исходные коды, которые можно использовать в своём движке. Есть ещё таблицы Налимова, их исходные коды тоже можно найти в интернете, хотя все ссылки, что я для них видел, теперь уже нерабочие. Для использования таблиц Налимова в своём движке необходимо согласие автора. Насколько я знаю, обычно он это согласие давал всем, кто его просил.
Сообщений: 9
Темы: 1
У нас с: Dec 2016
Рейтинг:
0
Цитата:По поводу первого вопроса, точно не скажу, однако по-моему, это проблема Арены, а не движка. Моете попробовать запустить движок без оболочки и повторить все действия вручную. Если команда stop будет нормально работать, то это точно проблема Арены.
Движок то мои все там работает правильно. Просто я подумал, вдруг я не так понял принцип работы режима ponder.
Кстати, если вдруг кому-то интересно, выложил более менее работоспособную версию: http://silchenko-e.narod.ru/chess.htm
Доброго времени суток!
Енко, подскажите пожалуйста, а какие вообще языки программирования необходимо изучать, чтобы научиться писать шахматную программу, или хотя бы симулятор доски и т.д.?
Быть может скинете какую то инструкцию, или мануал и т.д.?
|