Подключение движка

Тема в разделе "Машинное отделение", создана пользователем Tristan, 19 дек 2006.

  1. TopicStarter Overlay

    Tristan Учаcтник

    • Участник
    Рег.:
    26.09.2006
    Сообщения:
    110
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Всем привет!

    Кто знает, какой формат нужно реализовать, чтобы на программном уровне общатся с шахматным движком? Как посылать ему ходы, как получать ответы и т.д.
    Нужно для написания собственного GUI для движков (таких как Fritz 5, Crafty, Ruffian и проч.)
  2. Kirr Администратор

    • Команда форума
    Рег.:
    11.02.2006
    Сообщения:
    1.208
    Симпатии:
    22
    Репутация:
    8
    Оффлайн
    Это недавно обсуждалось здесь.
  3. TopicStarter Overlay

    Tristan Учаcтник

    • Участник
    Рег.:
    26.09.2006
    Сообщения:
    110
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Спасибо, очень ценная инфа. Но там ни слова о том, что собственно надо посылать программе. Неужели прямо ходы текстом и все?
    Как на счет расставления начальной позиции, указания времени и проч?
  4. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Самый продвинутый общепринятый протокол на данный момент - UCI2.
    http://www.shredderchess.com/download.html
    В самом низу страницы ссылка для скачивания.
    удобно смотреть что шлют движки в Арене - там есть отладочное окно.

    Вот еще одна ссылка для скачивания.
    http://sourcechess.jino-net.ru/UCI2.zip
  5. Kirr Администратор

    • Команда форума
    Рег.:
    11.02.2006
    Сообщения:
    1.208
    Симпатии:
    22
    Репутация:
    8
    Оффлайн
    Я тоже рекомендую ориентироваться на UCI.

    Один очень удобный инструмент при изучении протокола - программа InBetween. Её можно подключить между движком и интерфейсом и настроить чтобы она вела лог интерфейса. Таким образом можно изучить интерфейс любого движка без использовании Арены. (Движка WB или UCI). Скачать можно здесь.
  6. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    :)
  7. TopicStarter Overlay

    Tristan Учаcтник

    • Участник
    Рег.:
    26.09.2006
    Сообщения:
    110
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Спасибо, други! А как на счет Winboard интерфейса? Это совсем другой интерфейс?
    Например, на каком интерфейс работает сайт freechess.org?
  8. Kirr Администратор

    • Команда форума
    Рег.:
    11.02.2006
    Сообщения:
    1.208
    Симпатии:
    22
    Репутация:
    8
    Оффлайн
    Winboard это такой же текстовый интерфейс как UCI. Я не рекомендую браться за поддержку Winboard до тех пор пока оболочка не будет полностью рабочей с UCI. Кроме того Winboard и UCI с переменным успехом конвертируются друг в друга адаптерами.
  9. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.492
    Симпатии:
    3.122
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    С Фрицем просто так не выйдет, у Сhessbase-движков собственный, закрытый протокол... С Крафти и Раффиан - да, получится.
  10. TopicStarter Overlay

    Tristan Учаcтник

    • Участник
    Рег.:
    26.09.2006
    Сообщения:
    110
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Ок, спасибо.
    А что-нибудь по-моднее нету? Типа XML, Web services? И я так и не понял по какому интерфейсу работуют сайты типа freechess.org или www.chessclub.com?
  11. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Мы говорим о движках сайтов, или об интерфесах шахматных движков? :)
    Движки поддерживают в основной своей массе один из двух открытых протоколов UCI/Winboard (либо сразу оба)
    XML? :)
    Мы о чем говорим? О репликации данных или об обмене информацией шахматного движка и оболочки? :)
  12. TopicStarter Overlay

    Tristan Учаcтник

    • Участник
    Рег.:
    26.09.2006
    Сообщения:
    110
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Про движки я все понял. Теперь интересует вопрос по сайтам. :)
  13. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.492
    Симпатии:
    3.122
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    freechess.org работает на протоколе xboard
    playchess.com - опять таки, на своём внутреннем чессбейзовском протоколе
    ICC вроде бы тоже какой-то проприетарный протокол поддерживает
    так же и Планета, Берег и пр. - везде всё собственное, без намёка на стандарт

    так что общаться, видимо, получится только с семейством xboard-серверов (FICS и его клоны)

    а протоколы не открывают по двум причинам:

    1) коммерческие услуги - платная авторизация и всё такое
    2) анти-читерские прибамбасы - они у всех свои, и их тоже не хотят разглашать
  14. варяг Учаcтник

    • Участник
    Рег.:
    23.10.2006
    Сообщения:
    98
    Симпатии:
    0
    Репутация:
    0
    Адрес:
    Гонду-Раша
    Оффлайн
    А я как раз новичкам рекомендую наоборот. Winboard гораздо легче реализовать.
  15. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    И чем-же он легче?
    В каком методе?
  16. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    WinBoard гораздо приятнее реализовывать. Легко можно управиться за полчаса.
    А UCI я не могу сделать уже больше года. Как только начинаю его делать, сразу начинает тошнить. Только огромным усилием воли смог режим анализа сделать, т.к. это было очень надо.

    Но это мои чисто эстетические предпочтения.
  17. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    У меня была написана простая оболочка под Winboard, а движок поддерживает UCI -
    по сложности точь-в-точь тоже самое...
  18. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Тут дело не в сложности, а в извращенности UCI.
  19. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Это с какой точки зрения посмотреть :)
    Например передача позиции... В UCI передается полная информация - начальная позиция и сделанные ходы. Я считаю что это намного лучше чем передача только очередного хода.
  20. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    И анализ партий (с конца партии!!! Чтоб использовать захешированные оценки)
    Каким образом можно реализовать в Winboard? Движок должен уметь отслеживать повторение позиции - значит ему нужна каждый раз информация с самого начала партии!
  21. TopicStarter Overlay

    Tristan Учаcтник

    • Участник
    Рег.:
    26.09.2006
    Сообщения:
    110
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    А что на счет xboard интерфейса? Кто-нибудь его реализовывал? Насколько я понимаю, он схож с WinBoard...
  22. atoku Модератор

    • Команда форума
    Рег.:
    05.02.2006
    Сообщения:
    2.949
    Симпатии:
    9
    Репутация:
    0
    Адрес:
    USA
    Оффлайн
    Насколько я понимаю - это просто одно и то же.
  23. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Че-то не понял ничего. Чего тут не хватает для полного счастья?
    Есть команда undo для анализа с конца партии.
  24. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    А где в winboard передается неполная информация?
  25. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    undo - это полная информация? :)
    Я говорю о том, что по-моему мнению всяко лучше передавать всю информацию.
    А вся - это стартовая позиция, и последовательность ходов из неё. Одной командой.
    То есть как раз в UCI получается сделано лучше и удобней, хоть вообще запускай - чтоб через ход ходили разные движки :)
    Кстати, могу выложить такой переходник :)
  26. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    То же что и в winboard. Только там не передается каждый раз то, что уже и так известно движку.

    Я же говорил, что UCI вызывает у меня чисто эстетическое отвращение. По функциональности он почти ничем не хуже winboard.
  27. TopicStarter Overlay

    Tristan Учаcтник

    • Участник
    Рег.:
    26.09.2006
    Сообщения:
    110
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Ничем не хуже? Может ничем не лучше? Он (UCI) вроде поновее же! Как он может быть хуже?
  28. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.492
    Симпатии:
    3.122
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Ну уж нет. Передавать, так всё полностью - вместе со всеми предыдущими партиями, игранными этим движком, и вообще вместе со всей историей шахмат. Только так: каждый ход - посылаем в сообщении всю Мегабазу, не меньше :D
  29. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.492
    Симпатии:
    3.122
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Здесь вы делаете негласное предположение, что всё новое лучше всего старого, не так ли? :)
  30. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Я этого не говорил! Я сказал: "почти ничем не хуже".
  31. TopicStarter Overlay

    Tristan Учаcтник

    • Участник
    Рег.:
    26.09.2006
    Сообщения:
    110
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Ну как я понял из обсуждения, UCI продвинутей и функциональней Winboard и тут вы говорите - не хуже. Это почти как Мерс почти ничем не хуже жигулей. :)
  32. TopicStarter Overlay

    Tristan Учаcтник

    • Участник
    Рег.:
    26.09.2006
    Сообщения:
    110
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Я надеюсь на это. :)
  33. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    А чего тут надеяться? :)
    Достаточно посмотреть какой протокол поддерживают лучшие коммерческие движки и оболочки :)
    Шреддер, Хиаркс, Фрукт, Рыбка и т.д. - все поддерживают UCI.
  34. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Не нужно фетишизировать коммерческие движки.
    Они его юзают только потому, что он удобнее пользователю.
    WinBoard можно было бы сделать не менее удобным, только автор совсем его забросил в последнее время.
  35. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    По сложности они одинаковы, пользователю удобней UCI.
    Я именно об этом с самого начала и говорю :)
    Поддержка протокола - это мизерная часть от шахматной программы, требующая минимальных усилий.
    Вся процедура получения позиции у меня занимает несколько десятков строк (начальная позиция, fen, парсинг строки с преобрзованием хода во внутрений формат, и исполнние его)
    И главное - это как раз возможности и удобство для пользователя.

Поделиться этой страницей