7 / 7 / 7
Регистрация: 20.06.2016
Сообщений: 72
|
|
1 | |
Обмен данными GUI и шахматного движка02.06.2017, 20:47. Показов 1545. Ответов 10
Пишу GUI для работы с шахматным движком. Движок это exeшник принимающий команды, но как мне сделать возможным обмен данными между ними?
0
|
02.06.2017, 20:47 | |
Ответы с готовыми решениями:
10
Обмен данными между 2 GUI приложениями Qt Двусторонний обмен данными без блокировки GUI Обмен данными Обмен данными |
7 / 7 / 7
Регистрация: 20.06.2016
Сообщений: 72
|
|
02.06.2017, 23:59 [ТС] | 3 |
И принимающий и отвечающий. По умолчанию в стандартный поток ввода и вывода. Движок - консольное приложение
0
|
Диссидент
27705 / 17321 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
03.06.2017, 00:47 | 4 |
Anikin, В каком фреймворке (библиотеке, ИДЕ) вы работаете? Вот в Qt есть замечательная штука - QProcess , позволяющая весьма комфортно направлять ввод и перехватывать вывод запущенного процесса. Я думаю, что и в других средах (даже в WinAPI) нечто подобное есть.
Но самое простое решение - перенаправление ввода-вывода средствами ОС. Запускаете "chessdvigok <input.txt >out.txt" и он будет кушать стандартный ввод из файла input.txt, а какать свой стандартный вывод в out.txt (надеюсь, вы понимаете, что имена файлов могут быть произвольными). Это решение не слишком изящно, но должно работать во всех операционных системах. Кстати, если написать >>out.txt, то он будет не писать файл каждый раз заново, а дописывать в него. ЗЫ. А что за движок-то, если не секрет? Я когда-то немножко играл в шахматы...
0
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
03.06.2017, 01:08 | 5 |
0
|
7 / 7 / 7
Регистрация: 20.06.2016
Сообщений: 72
|
|
03.06.2017, 20:08 [ТС] | 6 |
Самый популярный и самый сильный - stockfish 8. Немного не понял, а как мне из своей программы запустить другую?
P.S. Никогда таким не занимался.
0
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
03.06.2017, 22:40 | 7 |
Anikin, и вправду зачем смотреть ответы в теме - лучше продолжать спрашивать одно и тоже
0
|
7 / 7 / 7
Регистрация: 20.06.2016
Сообщений: 72
|
|
04.06.2017, 00:05 [ТС] | 8 |
Я посмотрел Ваш ответ, но все равно не понял, мы подключаем коннектор в файл с самой игрой? Если да, то я не понимаю как оно работает
0
|
зомбяк
1584 / 1218 / 345
Регистрация: 14.05.2017
Сообщений: 3,939
|
|
04.06.2017, 00:15 | 9 |
Anikin, подключаем не к файлу, а запускаем из нашего приложения ту программу и обмениваемся с ней данными в формате типа командной строки. Причём для обмена используется стандартный язык описания ходов шахматной партии.
0
|
284 / 232 / 114
Регистрация: 07.09.2016
Сообщений: 584
|
||||||
04.06.2017, 00:20 | 10 | |||||
по простому сценарию без перенаправления потоков:
предполагается, что протокол общения такой, как описали выше: YourChessEngine.exe <inputFile.txt >outputFile.txt. тогда, подготовьте входной файл inputFile.txt и в консольке набейте вышеуказанную команду. Если все ок, смотрите что там в outputFile.txt. Если и тут все ок, то из программы это все можно сделать тупо вызывая system
0
|
Диссидент
27705 / 17321 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
04.06.2017, 00:38 | 11 |
Но если уж вам пришлось этим заняться, не стоит ли вообще изучить, как это делается? Все совсем не сложно. Только очень тупой и ленивый не сможет в этом разобраться. Но судя по поставленной задаче, я бы не рискнул зачислить вас ни в одну из этих категорий
0
|
04.06.2017, 00:38 | |
04.06.2017, 00:38 | |
Помогаю со студенческими работами здесь
11
Обмен данными с 1С Обмен данными Обмен данными Обмен данными Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |