
Игра Го. Секреты мастерства запись закреплена
Большой список компьютерных программ играющих в Го, которые можно скачать бесплатно.
Теперь вы можете выбрать себе соперника не только по силе игры, но еще и по стилю. В подборке присутствуют относительно слабые программы, с которыми может справиться и начинающий.
Amigo: https://sourceforge.net/projects/amigogtp/
AQ: https://github.com/ymgaq/AQ
Aya: http://www.yss-aya.com/
Brown: http://ricoh51.free.fr/go/engineeng.htm
Copybot: https://github.com/sirtango/ICopyMoves
CrazyPatterns: https://www.remi-coulom.fr/Amsterdam2007/
Dariush: http://ricoh51.free.fr/go/engineeng.htm
DarkForest: https://github.com/facebookresearch/darkforestGo
DarkGo: https://pjreddie.com/darknet/darkgo-go-in-darknet/
deltaGo: http://home.q00.itscom.net/otsuki/delta.html
Fudo Go: http://www.geocities.jp/hideki_katoh/
Fuego: http://fuego.sourceforge.net/
GnuGo: https://www.gnu.org/software/gnugo/devel.html
GoTraxx http://gotraxx.codeplex.com/
Hara: https://github.com/antoniogarro/Hara
Hiratuka: Non GPU version (10.37B): http://www.vector.co.jp/download/file/winnt/game/fh67.. / GPU version (10.38B): http://www.vector.co.jp/download/file/winnt/game/fh68..
IndiGo: http://www.math-info.univ-paris5.fr/~bouzy/INDIGO.html
Iomrascálaí: https://github.com/ujh/iomrascalai
JrefBot: http://ricoh51.free.fr/go/engineeng.htm
Leela: https://sjeng.org/leela.html
Leela Zero: https://github.com/gcp/leela-zero
Marcos Go: https://github.com/MarcosPividori/Go-player
Matilda: https://github.com/gonmf/matilda
Michi C-2 https://github.com/db3108/michi-c2
MoGo: https://lifein19x19.com/forum/viewtopic.php?p=211091#..
Oakfoam: https://bitbucket.org/dsmic/oakfoam
Orego: https://sites.google.com/a/lclark.edu/drake/research/..
Pachi: http://pachi.or.cz/
Rayon: https://github.com/zakki/Ray
Ray: https://github.com/kobanium/Ray
Stop: https://www.vanheusden.com/stop/
Теперь вы можете выбрать себе соперника не только по силе игры, но еще и по стилю. В подборке присутствуют относительно слабые программы, с которыми может справиться и начинающий.
Amigo: https://sourceforge.net/projects/amigogtp/
AQ: https://github.com/ymgaq/AQ
Aya: http://www.yss-aya.com/
Brown: http://ricoh51.free.fr/go/engineeng.htm
Copybot: https://github.com/sirtango/ICopyMoves
CrazyPatterns: https://www.remi-coulom.fr/Amsterdam2007/
Dariush: http://ricoh51.free.fr/go/engineeng.htm
DarkForest: https://github.com/facebookresearch/darkforestGo
DarkGo: https://pjreddie.com/darknet/darkgo-go-in-darknet/
deltaGo: http://home.q00.itscom.net/otsuki/delta.html
Fudo Go: http://www.geocities.jp/hideki_katoh/
Fuego: http://fuego.sourceforge.net/
GnuGo: https://www.gnu.org/software/gnugo/devel.html
GoTraxx http://gotraxx.codeplex.com/
Hara: https://github.com/antoniogarro/Hara
Hiratuka: Non GPU version (10.37B): http://www.vector.co.jp/download/file/winnt/game/fh67.. / GPU version (10.38B): http://www.vector.co.jp/download/file/winnt/game/fh68..
IndiGo: http://www.math-info.univ-paris5.fr/~bouzy/INDIGO.html
Iomrascálaí: https://github.com/ujh/iomrascalai
JrefBot: http://ricoh51.free.fr/go/engineeng.htm
Leela: https://sjeng.org/leela.html
Leela Zero: https://github.com/gcp/leela-zero
Marcos Go: https://github.com/MarcosPividori/Go-player
Matilda: https://github.com/gonmf/matilda
Michi C-2 https://github.com/db3108/michi-c2
MoGo: https://lifein19x19.com/forum/viewtopic.php?p=211091#..
Oakfoam: https://bitbucket.org/dsmic/oakfoam
Orego: https://sites.google.com/a/lclark.edu/drake/research/..
Pachi: http://pachi.or.cz/
Rayon: https://github.com/zakki/Ray
Ray: https://github.com/kobanium/Ray
Stop: https://www.vanheusden.com/stop/
97 Нравится
33 поделились
3.7K просмотров
3.7K

Антон,
давайте вместе собирать эти особенности. Я лично тестировал только
Leela. Может, кто-то напишет свои впечатления от игры с другими
программами из списка.

Максим, для 20 - 25 кю нужна книга типа "Го для начинающих" и много играть

Лавка древностей:
IgoWin (9x9): http://www.smart-games.com/igowin.html
TurboGo: http://www.turbogo.com/
Go Simulator (DOS): https://www.myabandonware.com/game/go-simulator-2hq
IgoWin (9x9): http://www.smart-games.com/igowin.html
TurboGo: http://www.turbogo.com/
Go Simulator (DOS): https://www.myabandonware.com/game/go-simulator-2hq

Артем, можно и 6-й найти)
а вот 7-й вроде бы нет :(
а вот 7-й вроде бы нет :(

Зачем столько программ? Просто установите в Лилу Зеро нейросетку подходящей силы и играйте сколько влезет.
Диапазон силы от полного рандома до примерно 1-го дана. А если нужно варьировать стиль, то можно попробовать разное сочетание уровня нейросети / величины перебора. А если и этого недостаточно, то можно попробовать нейросетки не прошедшие отбор:
http://zero.sjeng.org/networks/

Диапазон силы от полного рандома до примерно 1-го дана. А если нужно варьировать стиль, то можно попробовать разное сочетание уровня нейросети / величины перебора. А если и этого недостаточно, то можно попробовать нейросетки не прошедшие отбор:
http://zero.sjeng.org/networks/

Максим, на кгс зайди и поиграй с ботом 18к, неплохой...

Neko, это не мне, а ученикам 3-5 классов, только начинают. для них 18 кю тяжеловато, а idiotbot слишком глупо.

Neko, они играют друг с другом, но лишь 2 раза в неделю

Дмитрий, а еще им можно дать сеанс одновременной игры :)

Дмитрий,
это трудно устроить. В го нет программ-оболочек, позволяющих устраивать
турниры между программами-игроками. Кроме того, большинство из
приведенных выше программ либо не поддерживают единый стандарт обмена
данными (GTP version 2), либо поддерживают его весьма своеобразно.

Альберт,
Да, каждую партию в Sabaki нужно запускать вручную, а перед этим ещё придется поплясать с бубном, чтобы выставить настройки для обеих программ-соперников. В то время как в шахматах существует с десяток оболочек, позволяющих запускать сразу турниры движков целиком (а не только отдельные партии как в Sabaki). И кроме того, все ведущие движки поддерживают единый протокол обмена данными, а значит их легко запускать в оболочке. Как результат, за пару минут можно организовать турнир, в котором будет сыграно 10 000 партий за ночь. И, главное, никакого внимания такой турнир не требует, хоть месяц его гоняй (что я однажды и сделал).
Насчет Win 10. Неужели ни одна программа не запускается? Я только знаю, что например старые 16-битные программы не запускаются под Win 7 и более поздние операционки. Может быть попробовать какой-нибудь из эмуляторов старой винды. Например:
https://www.virtualbox.org/
Требуется только диск со старой операционкой.
Да, каждую партию в Sabaki нужно запускать вручную, а перед этим ещё придется поплясать с бубном, чтобы выставить настройки для обеих программ-соперников. В то время как в шахматах существует с десяток оболочек, позволяющих запускать сразу турниры движков целиком (а не только отдельные партии как в Sabaki). И кроме того, все ведущие движки поддерживают единый протокол обмена данными, а значит их легко запускать в оболочке. Как результат, за пару минут можно организовать турнир, в котором будет сыграно 10 000 партий за ночь. И, главное, никакого внимания такой турнир не требует, хоть месяц его гоняй (что я однажды и сделал).
Насчет Win 10. Неужели ни одна программа не запускается? Я только знаю, что например старые 16-битные программы не запускаются под Win 7 и более поздние операционки. Может быть попробовать какой-нибудь из эмуляторов старой винды. Например:
https://www.virtualbox.org/
Требуется только диск со старой операционкой.

Вышла новая Leela Zero 0.10:
https://github.com/gcp/leela-zero/releases
Из основных улучшений:
- скорость работы несколько увеличилась;
- появилась версия для CPU, которая позволяет запускать Зеро на старых компьютерах, или на компьютерах без нормальной видеокарты.
https://github.com/gcp/leela-zero/releases
Из основных улучшений:
- скорость работы несколько увеличилась;
- появилась версия для CPU, которая позволяет запускать Зеро на старых компьютерах, или на компьютерах без нормальной видеокарты.

Rom,
наконец на Win 7 удалось запустить AQ, используя в качестве клиента
Drago – там добавил в текстовый конфигурационный файл движков параметры
из сборки AQ. А вот что нужно подставить там для Leela Zero – пока не
разобрался. Версия 0.10 хотя бы не падает и даже делает ход в консоли,
предыдущая просто сваливалась в ошибку.

Альберт,
у меня под Win 7 запускается немало программ. В качестве оболочки я
использую последнюю версию Sabaki 0.32.2. В ней удалось запустить
следующие программы -
Brown (выбирает ходы почти случайно), Amigo (ориентировочно 20 кю), Aya 6.34 (~10 кю), GnuGo 3.8 (~7 кю), Fuego 1.1 (~1 кю), Leela 0.11.0 (~7 дан). У многих программ требуется прописать параметры для запуска. Параметры для Leela Zero 0.10 приведу в следующем сообщении.
Brown (выбирает ходы почти случайно), Amigo (ориентировочно 20 кю), Aya 6.34 (~10 кю), GnuGo 3.8 (~7 кю), Fuego 1.1 (~1 кю), Leela 0.11.0 (~7 дан). У многих программ требуется прописать параметры для запуска. Параметры для Leela Zero 0.10 приведу в следующем сообщении.

Как установить Leela Zero 0.10 в Sabaki:
1. Скачиваем и устанавливаем Sabaki. Скачиваем архив движка Leela Zero 0.10 или Leela Zero 0.10 cpuonly, и распаковываем в отдельную папку, в любое удобное место. Скачиваем архив с последней натренированной нейросетью (или любой промежуточной, более слабой) и распаковываем её ( желательно в папку с Leela Zero). Название файла нейросети можно изменить на любое удобное, лишь бы оно совпадало с тем, что прописано в настройках (см. ниже).
2. Запускаем Sabaki. В выпадающем меню Engines выбираем Мanage Engines... В появившемся окне внизу нажимаем Add. После чего в окне появится позиция для нового движка. Вписываем туда название движка, указываем путь к файлу движка, прописываем параметры запуска (мои параметры в прилагаемом скриншоте).
3. Теперь, чтобы играть с программой, нужно закрыть окно движков, нажав Close. Затем в выпадающем меню File выбрать New. В появившемся внизу окне выбрать за нужный цвет Leela Zero 0.10 в выпадающем меню. OK.
Что значат параметры, напишу в следующем сообщении.
1. Скачиваем и устанавливаем Sabaki. Скачиваем архив движка Leela Zero 0.10 или Leela Zero 0.10 cpuonly, и распаковываем в отдельную папку, в любое удобное место. Скачиваем архив с последней натренированной нейросетью (или любой промежуточной, более слабой) и распаковываем её ( желательно в папку с Leela Zero). Название файла нейросети можно изменить на любое удобное, лишь бы оно совпадало с тем, что прописано в настройках (см. ниже).
2. Запускаем Sabaki. В выпадающем меню Engines выбираем Мanage Engines... В появившемся окне внизу нажимаем Add. После чего в окне появится позиция для нового движка. Вписываем туда название движка, указываем путь к файлу движка, прописываем параметры запуска (мои параметры в прилагаемом скриншоте).
3. Теперь, чтобы играть с программой, нужно закрыть окно движков, нажав Close. Затем в выпадающем меню File выбрать New. В появившемся внизу окне выбрать за нужный цвет Leela Zero 0.10 в выпадающем меню. OK.
Что значат параметры, напишу в следующем сообщении.

Что означают параметры в указанном выше скриншоте:
--gtp -запускать Leela во внешней оболочке под протоколом gtp;
--threads 2 -запускать на двух ядрах/потоках (чем больше, тем выше скорость и вариативность в выборе ходов);
--noponder -обдумывание за время соперника отключено;
-p 1600 -величина перебора вариантов - 1600 playout 'ов;
-r 0 -сдаваться, если оценка позиции менее 0%;
-w 1937weights.txt -название файла нейросети (должен совпадать с тем, что вы скачали);
-d -не использовать специальные правила для паса (т.е. нейросеть сама должна понимать, что следует пасовать);
-m 0 -больше случайности при выборе хода (до хода номер 0);
-s 0 -отключить элемент случайности, вносимый генератором случайных чисел (при значении 0).
Остальные параметры, вместе с комментариями, будут выведены на экран, если прописать в настройках ключ -h
P.S. Как устанавливать Лиле время на ход, я могу отдельно рассказать.
--gtp -запускать Leela во внешней оболочке под протоколом gtp;
--threads 2 -запускать на двух ядрах/потоках (чем больше, тем выше скорость и вариативность в выборе ходов);
--noponder -обдумывание за время соперника отключено;
-p 1600 -величина перебора вариантов - 1600 playout 'ов;
-r 0 -сдаваться, если оценка позиции менее 0%;
-w 1937weights.txt -название файла нейросети (должен совпадать с тем, что вы скачали);
-d -не использовать специальные правила для паса (т.е. нейросеть сама должна понимать, что следует пасовать);
-m 0 -больше случайности при выборе хода (до хода номер 0);
-s 0 -отключить элемент случайности, вносимый генератором случайных чисел (при значении 0).
Остальные параметры, вместе с комментариями, будут выведены на экран, если прописать в настройках ключ -h
P.S. Как устанавливать Лиле время на ход, я могу отдельно рассказать.

Rom, большое спасибо за подробную информацию, наверняка многим будет полезно!

Кстати,
а помните, многие спрашивали, когда изучали АГ тул, почему Альфаго не
всегда выбирает ходы, которые имеет максимальную вероятность победы? Так
вот, это связано с тем, что в методе Монте-Карло для поиска в древе
выбирается ход не с максимальной средней ценностью (вин рейт), а с
максимальным числом прохождения через это состояние (позицию). Это
позволяет избежать значительных флуктуаций и дропов для вин рейта в
последующем

Кажется,
в ближайшем будущем нас ожидает новый, сильный AQ. В данный момент на
сервере CGOS программа AQ обыгрывает коммерческий Zen 7 (Zen-15.3-10c)
со счетом 2-0:
http://www.yss-aya.com/cgos/19x19/cross/AQ-2.1.0-4t1g..
http://www.yss-aya.com/cgos/19x19/cross/AQ-2.1.0-4t1g..

Alexander, Aya - по моему неслабая программа. На уровне "weak" у меня выиграла. Посмотрел кто разработчик - японец. Тогда все понятно


Rom, да и старый AQ даже в виде релиза AQ-mini_win.zip от 15.10.2017 играет намного сильнее L0.
"Как устанавливать Лиле время на ход, я могу отдельно рассказать" – расскажите, было бы очень интересно! Насколько я понял, это не настройка, а должно передаваться от клиента по GTP.
"Как устанавливать Лиле время на ход, я могу отдельно рассказать" – расскажите, было бы очень интересно! Насколько я понял, это не настройка, а должно передаваться от клиента по GTP.

Альберт,
в предыдущих версиях Sabaki, чтобы установить время на ход, требовалось
перед каждой партией сначала запускать Лилу, потом отправлять ей
команду time_settings посредством командной строки, и если её соперником
тоже была Лила, то повторять этот процесс (смотри скриншот 1). Всё это
посредством постановки игры на паузу и прочих танцев с бубном. 
Но теперь, в последней версии Sabaki 0.33.1, команды GTP можно просто прописать в настройках второй строкой (см. скриншот 2). Они будут автоматически отправляться Лиле перед началом партии. Например, при записи time_settings 1000 10 5 устанавливается контроль 1000 секунд на партию, плюс 10 секунд на каждые 5 ходов. При настройках time_settings 0 1 0 время не ограничивается. Если у вас в настройках одновременно установлено время и количество playout' ов, то Лила просто выберет, какое условие раньше сработает.

Но теперь, в последней версии Sabaki 0.33.1, команды GTP можно просто прописать в настройках второй строкой (см. скриншот 2). Они будут автоматически отправляться Лиле перед началом партии. Например, при записи time_settings 1000 10 5 устанавливается контроль 1000 секунд на партию, плюс 10 секунд на каждые 5 ходов. При настройках time_settings 0 1 0 время не ограничивается. Если у вас в настройках одновременно установлено время и количество playout' ов, то Лила просто выберет, какое условие раньше сработает.

Rom, спасибо!
Я правильно понимаю, что по умолчанию выставлено как раз 0 1 0, то есть отсутствие ограничений? Но с другой стороны, L0 перед каждым ходом сообщает свое максимальное время на ход (но реально ход генерится намного быстрее).
Я правильно понимаю, что по умолчанию выставлено как раз 0 1 0, то есть отсутствие ограничений? Но с другой стороны, L0 перед каждым ходом сообщает свое максимальное время на ход (но реально ход генерится намного быстрее).

Альберт,
насколько я знаю, по умолчанию выставлено 60 минут на партию, без
добавления. Исходя из этого, в начале партии Лила прикидывает примерное
время на ход (50 секунд), предполагая постепенное его сокращение с
каждым ходом.

Прописывая
время, вы отменяете время по умолчанию и заменяете его тем, что
прописали. Но если, вдруг прописанное количество playout' ов будет
достигнуто раньше, чем кончится время на ход, то Лила тут же сходит.
Если playout' ы совсем убрать, то ограничением станет только время.
Никаких playout'ов по умолчанию я не встречал.