Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2016, 18:56   #11
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Два << означает включение в поток (это в Си).
Причем тут С++, это перенаправление ввода, а не операторы из С++. По ссылке выше описание и примеры.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 19.02.2016 в 19:11.
Alex11223 вне форума Ответить с цитированием
Старый 19.02.2016, 19:06   #12
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Причем тут С++, это перенаправление ввода, а не операторы из С++. По ссылке выше описание и примеры.
Так я и не настаиваю.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 19.02.2016, 19:29   #13
Олег*
Пользователь
 
Регистрация: 07.01.2010
Сообщений: 30
По умолчанию

Цитата:
Сообщение от ds.Dante Посмотреть сообщение
UCI предписывает игнорировать всё начиная с первой ошибки в команде. Если вы передадите команду go stop, она будет урезана до go.
Но мне больше интересно, как вы собрались играть скриптом против недетерменированной программы. А вообще, играть с движком без оболочки - это как программировать в ed. .
В руководстве написано: «Таким образом, теоретически движок можно использовать и вручную: вводить команды на клавиатуре и смотреть, какие результаты будут выводиться. Однако это достаточно громоздко…». Следовательно, можно. А «громоздко» это, как я понимаю, они подразумевают для таких пользователей, которые про батники и другие способы автоматизации никогда не слышали. Вот потому-то я свой вопрос задаю на форуме программистов, а не на форуме шахматистов
По поводу «играть». Играть с движком таким образом, конечно же, не собираюсь. Хочу использовать для анализа позиций.
Цитата:
Сообщение от ds.Dante Посмотреть сообщение
[Если вы играете на деревянной доске или вслепую и хотите консольный интерфейс, поставьте лучше GNU Chess.
У меня сейчас на компе очень много шахматных графических оболочек (Фриц, Аквариум, Кветка…). Их я тоже использую для игры и для анализа. Но все-таки заинтересовался возможностью использования в консольном варианте хотя бы уже потому, что, как мне кажется, считать варианты будет пошустрее, да и хочется вспомнить/научиться как работать с пакетниками и прочими автоматизирующими прибамбасами
По поводу GNU Chess. Ну не знаю… Меня сейчас даже не шахматный аспект вопроса интересует, а скорее «программистский» Как всю эту хрень со всеми настройками запустить с помощью батника?
Олег* вне форума Ответить с цитированием
Старый 19.02.2016, 19:35   #14
Олег*
Пользователь
 
Регистрация: 07.01.2010
Сообщений: 30
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Не знаю как в этом, конкретном движке сделано, но последовательность команд (обычно) задаётся через слешь.
Код:
call c:\proba\stockfish_7_32bit.exe <команда 1>\<команда 2>\<команда 3>...
Это общепринятое негласное правило передачи команд в консольных приложениях. Нигде оно не задокументировано, просто традиционно так сложилось.
Попробовал. Результат тот же самый: выполняет только первую команду, а все остальные игнорирует.

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Да, ещё вспомнил. Попробуйте ввести команду "?". Должна выдать список доступных команд и их форматы.
Да это я уже пробовал. И вопросительный знак вводил, и “help”. В обоих случаях пишет «Неизвестная команда».
Цитата:
Сообщение от kvitaliy Посмотреть сообщение
Фига се ретро вопрос Да это же Stockfish — открытый UCI-совместимый шахматный движок, один из сильнейших в мире.
Поддерживает 32-битный и 64-битный однопроцессорный и многопроцессорный режимы (вплоть до 128 ядер), различные настольные и мобильные платформы (Windows, Mac OS X, Linux, iOS, Android)
Для того, что бы разобраться с ним надо изучить протокол UCI и настройки этого движка
Ну да, всё правильно Вот именно оттуда-то я сюда и пришел. В смысле, прочитал на днях те тексты, на которые Вы сейчас ссылки дали, и заинтересовался, как это можно автоматизировать в консоли. А моё «ретро» относилось не к движку, а к пакетным файлам
Цитата:
Сообщение от ds.Dante Посмотреть сообщение
Позвольте поправить: сильнейший в мире.
Да там не поймёшь уже, какой из них сильнейший, всё меняется постоянно. То Шредер был сильнейшим, то Рыбка, то Комодо, теперь вот Stockfish… За ними не уследишь. Но это и не требуется. Вполне достаточно ЛЮБОГО из них для анализа. А для игры достаточно вообще любого, потому что все равно с ними (на высоких уровнях настройки) "играть" нельзя, можно только "проигрывать"
Олег* вне форума Ответить с цитированием
Старый 19.02.2016, 19:53   #15
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Попробовал. Результат тот же самый: выполняет только первую команду, а все остальные игнорирует.
Тогда я - пас. В шахматы играть не умею, просто попробовал поделиться опытом работы с ДОС-овскими консольками.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 19.02.2016, 20:01   #16
Олег*
Пользователь
 
Регистрация: 07.01.2010
Сообщений: 30
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
<< означает просто <<, а не пробел.
Только разве не одно < надо вместо двух?
Сейчас попробовал с одним и с двумя "<". В варианте с одним отвечает вот так:

Цитата:
c:\proba>call c:\proba\stockfish_7_32bit.exe
Не удается найти указанный файл.

c:\proba>pause
Для продолжения нажмите любую клавишу . . .
А в варианте с двумя окошко консоли вспыхивает и сразу же пропадает.

Всё-таки это тупиковый путь, как я теперь понимаю. Например, мне нужно передать команду, состоящую из двух слов: "go infinite", ну и как я это буду делать? Короче говоря, вариант с передачей команд в виде параметров в строке запуска не годится. Следовательно, надо каким-то образом составить батник (или какой-то другой скрипт) так, чтобы команды были в обычном виде, т.е. каждая на отдельной строчке.
Олег* вне форума Ответить с цитированием
Старый 19.02.2016, 20:09   #17
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А чего с go infinite?
Работает же
Код:
"C:\Users\Alex\Downloads\stockfish-7-win\Windows\stockfish 7 32bit.exe" go infinite
А про файл — он точно в C:\proba лежит? Ну или полный путь файла пишите.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 19.02.2016, 20:23   #18
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Цитата:
Сообщение от Олег* Посмотреть сообщение
Хочу использовать для анализа позиций.
Позиции вводите вручную или берёте в текстовом виде? В первом случае тот же Фриц удобнее, во втором может оказаться проще освоить азы какого-нибудь питона, чем хакерить батники.

Цитата:
Сообщение от Олег* Посмотреть сообщение
заинтересовался возможностью использования в консольном варианте хотя бы уже потому, что, как мне кажется, считать варианты будет пошустрее
Не будет. Тут ограничение - процессорное время, которое шахматной оболочкой почти не потребляется.
ds.Dante вне форума Ответить с цитированием
Старый 19.02.2016, 20:53   #19
Олег*
Пользователь
 
Регистрация: 07.01.2010
Сообщений: 30
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Тогда я - пас. В шахматы играть не умею, просто попробовал поделиться опытом работы с ДОС-овскими консольками.
Шахматы здесь совершенно ни при чем, давайте про них вообще сейчас забудем. Нужен именно опыт работы с консолями и батниками ДОС.

Дано:
Есть консольная программа, которая понимает определенный набор своих собственных команд и вполне адекватно реагирует на них, если вводить их вручную прямо в консоль поштучно.

Требуется:
Пакетник/скрипт для автоматического ввода набора таких команд.


Разумеется, пакетник/скрипт весь целиком в готовом виде мне не требуется, хочется найти сам принцип его составления.

Сейчас у меня (с помощью пакетника) получается так, что ДОС запускает программу, но управление оставляет у себя. То есть, все команды, написанные ниже первой строчки, пытается выполнить сама ДОС. А поскольку они для нее чужие, то она их выпонить не может.
А ту единственную команду, которая написана в виде параметра в первой строке, она, как и требуется, передает непосредственно этой программе.

Сейчас я окончательно забраковал передачу в виде параметров. Ну просто невозможно будет передать в виде параметра вот такую, например, команду:

Код:
position startpos moves e2e4 e7e5

Последний раз редактировалось Олег*; 19.02.2016 в 20:55.
Олег* вне форума Ответить с цитированием
Старый 19.02.2016, 21:00   #20
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Нет тут никакого ДОС.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помощь с консольным приложением 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