![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#31 | ||||
Пользователь
Регистрация: 07.01.2010
Сообщений: 30
|
![]() Цитата:
![]() Цитата:
Цитата:
https://stockfishchess.org/download/ Цитата:
![]() Получается, действительно, если через Тотал Командер запускать, то после первой же синтаксической ошибки окно аварийно закрывается, игнорируя даже следующую дальше команду “Pause”. Сейчас попробовал без start, вот в таком виде: Код:
![]() Теперь расшифрую фразу «работает немного не так, как ожидается». Вот, например, текстовый файл выглядит вот так: Код:
Вторая строка предписывает движку начать бесконечный анализ этой позиции. Если две эти команды ввести в ручном режиме, то на экране будет бесконечно и очень быстро выводиться информация о текущем «бесконечном» анализе позиции до тех пор, пока не будет введена команда “stop”. А вот в «автоматическом» режиме у нас получается вот что: ![]() То есть бесконечного анализа не получается. Нам просто говорят: «Лучший ход в данной позиции – побить белой пешкой a4 черную пешку b5. Вот именно для этого я и расставил такую «глупую» позицию командой из первой строки. Если бы команда из первой строки не выполнилась по каким-то причинам, то такой ход (из начальной, по умолчанию, позиции был бы невозможен). То есть, можно сделать вывод, что задача этой ветки выполнена: теперь можно через текстовый файл отдавать «внутренние» команды запущенной консольной программе. А почему работает немного не так, как ожидалось, это я уже буду разбираться отдельно. Большое спасибо за помощь всем, кто принял участие в обсуждении! P.S. По поводу того откуда взялся “Start”. Это я в интернете вчера нарыл что-то похожее и попытался «поиграть» ключами, но ничего путного из этого не получилось: http://ab57.ru/cmdlist/start.html Больше всего меня там привлек параметр "/I". Попытался им "поиграть", но ничего путного не получилось ![]() А может быть какие-то другие ключи из перечисленных там надо использовать, чтобы не создавать "матрешку" из двух файлов? Последний раз редактировалось Олег*; 20.02.2016 в 16:20. |
||||
![]() |
![]() |
![]() |
#32 | |
Пользователь
Регистрация: 07.01.2010
Сообщений: 30
|
![]() Цитата:
И еще интересная фишка – можно его заставить журнал вести, тогда проще ориентироваться, что он понимает, а что нет. Например, сейчас у меня текстовый файл выглядит вот так: Код:
Цитата:
Как вы понимаете, знаком ">> " обозначены наши команды, а знаком "<<" обозначена информация, выводимая на консоль. Последний раз редактировалось Олег*; 20.02.2016 в 20:01. |
|
![]() |
![]() |
![]() |
#33 | |
Пользователь
Регистрация: 07.01.2010
Сообщений: 30
|
![]() Цитата:
Сейчас для сравнения расставил во Фрице15 ту же самую "глупую" позицию и попросил тот же самый движок ее "бесконечно" проанализировать. Ну так вот... В консольном варианте скорость, как Вы сами можете видеть в логе, 290-295 nps, а, используя графическую оболочку, получается только 250-255 nps. Таким образом, имеем прирост скорости 16%! |
|
![]() |
![]() |
![]() |
#34 |
Пользователь
Регистрация: 07.01.2010
Сообщений: 30
|
![]()
А вот если я соберусь свою оболочку написать, то как мне следует организовывать ее взаимодействие с движком? Ну в смысле, как ему команды передавать и как от него ответы получать? Вот так же через пакетники, которые оболочка будет создавать и запускать, а ответы, например, из лог-файла считывать, или как-то еще? Как это удобнее организовать, не подскажете? Или в языках высокого уровня существуют какие-нибудь специальные способы передачи консольным программам команд и получения результатов их выполнения?
Последний раз редактировалось Олег*; 20.02.2016 в 20:09. |
![]() |
![]() |
![]() |
#35 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
![]()
В любых языках можно писать в stdin другого процесса и читать из его stdout (либо через API ОС, например WinAPI, либо через обертку языка/библиотек над ним, если есть), но это не самый удобный способ взаимодействия в любом случае. Обычно если предполагается такое взаимодействие, то авторы предоставляют какое-то API (например в виде библиотеки).
Скиньте пример оболочки для этого движка.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
![]() |
![]() |
![]() |
#36 | ||||
Пользователь
Регистрация: 07.01.2010
Сообщений: 30
|
![]() Цитата:
Цитата:
Цитата:
https://stockfishchess.org/download/ я в них разобраться все равно не смогу, потому что, как я понимаю, они написаны на си, а у меня арсенал ![]() Цитата:
|
||||
![]() |
![]() |
![]() |
#37 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
![]()
Не, чужой существующей оболочки. Они ж существуют?
![]()
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
![]() |
![]() |
![]() |
#38 |
Пользователь
Регистрация: 07.01.2010
Сообщений: 30
|
![]()
Ну это запроста. Вот хотя бы белорусскую Кветку скачайте. Она бесплатная, очень симпатичная, да и к тому же это именно они всё так подробно разъясняют про формат UCI и всё прочее. К этой оболочке можно любые движки "прикручивать".
http://kvetka.org/ Но только она не под игру заточена, а именно под анализ позиций, что мне, собственно, сейчас и нужно. В принципе, достаточно и этой проги, на самом-то деле. Но всё равно хочется что-нибудь своё сделать, чтобы там было только то, что нужно мне и ничего такого, что "нужно всем", то есть ничего лишнего ![]() Последний раз редактировалось Олег*; 20.02.2016 в 22:48. |
![]() |
![]() |
![]() |
#39 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
![]()
Видимо да, просто через stdin/out, судя по тому, что ей нужен .ехе движка и описанию формата http://kvetka.org/UCI_format.shtml
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помощь с консольным приложением VB | Мария студентка | Помощь студентам | 3 | 03.12.2014 20:17 |
Работа с консольным приложением в Pascal | djquins | Помощь студентам | 1 | 15.12.2013 16:04 |
Взаимодействие с консольным приложением | RADEM | C# (си шарп) | 3 | 29.04.2013 21:59 |
работа с консольным java приложением (win32) | D][mon | C# (си шарп) | 1 | 11.02.2012 14:30 |
Работа со сторонним консольным приложением | Recart | Общие вопросы Delphi | 3 | 01.12.2010 01:22 |