Мозаичный форум  

Вернуться   Мозаичный форум > Территория общения > Персональные разделы > Чайный домик
Галерея Справка Пользователи Календарь Поиск Сообщения за день Все разделы прочитаны

Чайный домик Персональный раздел пользователя ВОВА

Ответ
 
Опции темы
Старый 05.03.2017, 20:33   #1
BOBA
Сетевой эльф
 
Аватар для BOBA
 
Регистрация: 27.09.2007
Сообщений: 37,310
BOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мира
Любительский кодинг - го-тренажер из подручных материалов

всегда хотелось сделать.

Т.к. уже существующие тренажеры не во всех отношениях удобны - то одно то другое хочется немного, самую каплю, но по другому. такой иговин, но не иговин. где-то больше, где-то меньше.....

исходники у интерфейсных программ были, но большие, и я думал, что никогда не смогу с этим ничего поделать.

но вот, о чудо, наткнулся на интерфейсную программку, которая укладывается всего в 300 строк примерно, это крохи. работала она под старым и страшным как невесть что скриптовым языком тикль - он зело как неудобен, однако некто именно на нем написал самый маленький интерфейсный модуль. Скрипт был рассчитан на tcl/tk 8.6, а мне очень сильно хотелось, чтобы он работал под старыми версиями.

поэтому скрипт пришлось перекрячивать, чем я и развлекся.


ПС на гитхабе
https://raw.githubusercontent.com/zz...aster/goban.py
Вложения
Тип файла: txt t_0.txt (7.8 Кб, 0 просмотров)
__________________
Магическое зеркало: видеть себя в других, видеть других в себе...
Предпочитаю вежливость.

Последний раз редактировалось BOBA; 09.03.2017 в 19:06.
BOBA на форуме   Ответить с цитированием
Старый 05.03.2017, 20:43   #2
BOBA
Сетевой эльф
 
Аватар для BOBA
 
Регистрация: 27.09.2007
Сообщений: 37,310
BOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мира
Что хочется, от функционала

1) четыре режима. Первый - комп играет сам с собой, а юзер на это смотрит.

2) юзер иногда делает ходы вместо одного из игроков, имеет возможность получать подсказки и откатывать ходы назад

3) юзер может откатывать ходы, но не может спрашивать помощи зала

4) юзер играет самостоятельно.

на днях сделаю кнопку ==попросить помощи== - так можно будет отслеживать типовые линии игры.

==============
Ну и возможно перепишу на питон. Питон как-то по.... почеловечнее спроектирован, чем наркоманский тикль.

Но, надо будет поизучать тамошние механизмы асинхронного ввода - вывода.
__________________
Магическое зеркало: видеть себя в других, видеть других в себе...
Предпочитаю вежливость.
BOBA на форуме   Ответить с цитированием
Старый 05.03.2017, 21:42   #3
Afa
Шволочь. И провокатор.
 
Аватар для Afa
 
Регистрация: 12.02.2006
Сообщений: 31,208
Afa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мира
гх
готовься к заметному увеличению кода
__________________
... Survivors will be shot again.
Afa вне форума   Ответить с цитированием
Старый 05.03.2017, 21:54   #4
BOBA
Сетевой эльф
 
Аватар для BOBA
 
Регистрация: 27.09.2007
Сообщений: 37,310
BOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мира
Да, отрастет. Насколько сил хва, на следующей неделе все же попробую запитонить.

Не ну то что трехсот страничный скрипт уже в принципе живет, и его можно дорабатывать, комментировать - это приятно. Потому что все остальное было огромным, по сравнению с этим , а так то руби::го конечно есть, никто не спорит, только разобрать его тоже развлечение непростое, чтобы найти мои же триста строк....
__________________
Магическое зеркало: видеть себя в других, видеть других в себе...
Предпочитаю вежливость.
BOBA на форуме   Ответить с цитированием
Старый 05.03.2017, 22:09   #5
Afa
Шволочь. И провокатор.
 
Аватар для Afa
 
Регистрация: 12.02.2006
Сообщений: 31,208
Afa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мира
рубя с голангами тож многословные. а с асинхронщиной в сторону функциональщины смотри. эликсир там из новомодных, к примеру. ну или лиспятину всякую схемострашную.
__________________
... Survivors will be shot again.
Afa вне форума   Ответить с цитированием
Старый 05.03.2017, 22:17   #6
BOBA
Сетевой эльф
 
Аватар для BOBA
 
Регистрация: 27.09.2007
Сообщений: 37,310
BOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мира
не, я тогда на питон. Мне не надо совсем кратко, я люблю понятно.

Потом путаться откуда какое замыкание чего замкнуло - не мой дзен.
__________________
Магическое зеркало: видеть себя в других, видеть других в себе...
Предпочитаю вежливость.
BOBA на форуме   Ответить с цитированием
Старый 05.03.2017, 22:23   #7
Afa
Шволочь. И провокатор.
 
Аватар для Afa
 
Регистрация: 12.02.2006
Сообщений: 31,208
Afa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мира
пф
рубя. целлулоид. эквивалент эрлангятины. вполне мягкий реалтайм получился.
__________________
... Survivors will be shot again.
Afa вне форума   Ответить с цитированием
Старый 06.03.2017, 19:35   #8
BOBA
Сетевой эльф
 
Аватар для BOBA
 
Регистрация: 27.09.2007
Сообщений: 37,310
BOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мира
начало питонирования
Вложения
Тип файла: txt goban.txt (3.9 Кб, 2 просмотров)
__________________
Магическое зеркало: видеть себя в других, видеть других в себе...
Предпочитаю вежливость.
BOBA на форуме   Ответить с цитированием
Старый 07.03.2017, 11:41   #9
BOBA
Сетевой эльф
 
Аватар для BOBA
 
Регистрация: 27.09.2007
Сообщений: 37,310
BOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мира
Минимальный пакет взаимодействия с энжином гну-го на питоне можно уложить в 100-200 строчек ( тестировал на python 2.7 )

- под leela придется немного доработать - оно в реакцию на команду genmove дает дополнительный вывод - версии продолжения партий. Которые надо поначалу выпиливать, а потом имеет смысл вылавливать и делать механизм для их прокрутки - они очень познавательны.

ПС - к питону можно относится просто и легко, как к бейсику. В нем есть глубина, тайны и загадки, но можно просто брать то что на поверхности, и сразу использовать. Это здорово.

На руби наверное так же, или даже еще лучше.
Вложения
Тип файла: txt goban.txt (4.8 Кб, 0 просмотров)
__________________
Магическое зеркало: видеть себя в других, видеть других в себе...
Предпочитаю вежливость.

Последний раз редактировалось BOBA; 07.03.2017 в 11:44.
BOBA на форуме   Ответить с цитированием
Старый 07.03.2017, 18:19   #10
BOBA
Сетевой эльф
 
Аватар для BOBA
 
Регистрация: 27.09.2007
Сообщений: 37,310
BOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мира
Играть с гнуго уже можно, если его исполнимый файл лежит в папке со скриптом, ну или доступен в путях.

по человечески конечно надо делать модуль настроек, где прописываются играющие консольные утилиты. и формочку управления настройками. Но лень.

Теперь можно думать о коде, который будет поддерживать кривые обучения, от простого к сложному.
Обязательно надо дописывать сохранялку в SGF, (что не записано того и не было), ну да в принципе не должно стать проблемой, по крайней мере основной ветки партии - стек ходов есть уже, правда нет пока настройки гандикапа, но это несложно и нетрудоемко.
Вложения
Тип файла: txt goban.txt (8.8 Кб, 1 просмотров)
__________________
Магическое зеркало: видеть себя в других, видеть других в себе...
Предпочитаю вежливость.
BOBA на форуме   Ответить с цитированием
Старый 09.03.2017, 12:40   #11
BOBA
Сетевой эльф
 
Аватар для BOBA
 
Регистрация: 27.09.2007
Сообщений: 37,310
BOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мира
Чего мне не хватало в тех играющих (интерфейсных) программах, что я использовал раньше - это удобного режима подсказки хода.

Пока я в своем обучении ставлю неамбизиозную задачку - научиться играть ненамного слабее слабых ботов, пока - очень намного слабее.

Даже играя с форой. Теперь я смогу смотреть, как бы на моем месте пошел бот. Ну и соответственно - внимать или не внимать совету.

Можно дальше будет ввести метрику - процент ходов сделанных без подсказки, и назвать ее - "самостоятельность игры".

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

Выглядит неказисто, но работает, понемногу.
Дальше работа пойдет над сохранением-восстановлением партий, и надо приделать установку форовых камней.


Изображения
Тип файла: png Мой гобан.png (18.1 Кб, 22 просмотров)
Вложения
Тип файла: txt goban.txt (9.5 Кб, 0 просмотров)
__________________
Магическое зеркало: видеть себя в других, видеть других в себе...
Предпочитаю вежливость.

Последний раз редактировалось BOBA; 09.03.2017 в 15:59.
BOBA на форуме   Ответить с цитированием
Старый 09.03.2017, 21:55   #12
Afa
Шволочь. И провокатор.
 
Аватар для Afa
 
Регистрация: 12.02.2006
Сообщений: 31,208
Afa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мира
git давай
так наблюдать интересней
и тэги не забывай с ченжлогом
__________________
... Survivors will be shot again.
Afa вне форума   Ответить с цитированием
Старый 09.03.2017, 22:30   #13
BOBA
Сетевой эльф
 
Аватар для BOBA
 
Регистрация: 27.09.2007
Сообщений: 37,310
BOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мира
На гит выложил сегодня. В первом посте ссылка.
И гандикап приделал уже.
__________________
Магическое зеркало: видеть себя в других, видеть других в себе...
Предпочитаю вежливость.

Последний раз редактировалось BOBA; 09.03.2017 в 22:44.
BOBA на форуме   Ответить с цитированием
Старый 12.03.2017, 16:31   #14
BOBA
Сетевой эльф
 
Аватар для BOBA
 
Регистрация: 27.09.2007
Сообщений: 37,310
BOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мира
Ну вот. Сделал настройку частоты подсказки, просто текстовое поле.
Если там y (в смысле yes) - подсказка каждый ход, yn- через ход, yyn - один ход из трех - самостоятельный, два - с подсказкой. Хоть как ритм настраивается.... можно убирать кнопку ==help== - она кажется совсем не нужна. Раньше она давала команду движку сходить по очереди за белых и черных.
=====================================
о, и сохранялку SGF по первому разу нарисовал тоже. неплохо.
__________________
Магическое зеркало: видеть себя в других, видеть других в себе...
Предпочитаю вежливость.

Последний раз редактировалось BOBA; 12.03.2017 в 19:06.
BOBA на форуме   Ответить с цитированием
Старый 13.03.2017, 14:11   #15
BOBA
Сетевой эльф
 
Аватар для BOBA
 
Регистрация: 27.09.2007
Сообщений: 37,310
BOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мира
Первая запись игры, отигранной в режиме - 2 хода с подсказкой, один - без

↓↓ партия
__________________
Магическое зеркало: видеть себя в других, видеть других в себе...
Предпочитаю вежливость.

Последний раз редактировалось BOBA; 15.03.2017 в 12:05.
BOBA на форуме   Ответить с цитированием
Старый 15.03.2017, 11:55   #16
BOBA
Сетевой эльф
 
Аватар для BOBA
 
Регистрация: 27.09.2007
Сообщений: 37,310
BOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мира
http://eidogo.com/#url:https://raw.g...17_03_14_1.sgf

первая игранная на своем движке партия на большой доске.... просил подсказок у движка, много - 3 подсказки - ход свой
__________________
Магическое зеркало: видеть себя в других, видеть других в себе...
Предпочитаю вежливость.
BOBA на форуме   Ответить с цитированием
Старый 21.03.2017, 19:42   #17
BOBA
Сетевой эльф
 
Аватар для BOBA
 
Регистрация: 27.09.2007
Сообщений: 37,310
BOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мира
↓↓ Рассматривал логику игры леелы

Код подрос ~800 строк, этой ценой удалось подключить довольно сильный движок - леелу.

Она не поддерживала команду "список камней на доске", поэтому написал свой расчет позиции, для расчета надо проверять дыхательные пространства групп и соответственно сами группы выделять.

В техническом плане упорно не выходит соскочить с функции os.popen2 на subprocess.Popen - на втором почему-то нормально работает гну-го, а леела - нет, но - popen2 устарел, и в третьем питоне этого нет. казалось бы, какая разница чем запустить движок ((( но она есть. В каналах, тонкая, неуловимая, но есть.
__________________
Магическое зеркало: видеть себя в других, видеть других в себе...
Предпочитаю вежливость.
BOBA на форуме   Ответить с цитированием
Старый 22.03.2017, 18:07   #18
BOBA
Сетевой эльф
 
Аватар для BOBA
 
Регистрация: 27.09.2007
Сообщений: 37,310
BOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мира
заметки к переходу на правильный модуль.

http://eyalarubas.com/python-subproc-nonblock.html

В принципе, чтение потока енжина в отдельном потоке (потоках?) сделать надо. оно принесет пользу в плане отзывчивости интерфейса..... и не только.
__________________
Магическое зеркало: видеть себя в других, видеть других в себе...
Предпочитаю вежливость.
BOBA на форуме   Ответить с цитированием
Старый 23.03.2017, 11:55   #19
BOBA
Сетевой эльф
 
Аватар для BOBA
 
Регистрация: 27.09.2007
Сообщений: 37,310
BOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мира
........ разобрался с потоками. не в них дело было ........ то есть в них, но не вполне понятно где, понятно как с этим жить - посимвольно разбирать ввод выкидывая \r. Вот переписал ранее скопипащенное, теперь вывод обеих движков читается корректно.

доволен, преодолел микропроблему. теперь можно замигрировать на py-3
__________________
Магическое зеркало: видеть себя в других, видеть других в себе...
Предпочитаю вежливость.
BOBA на форуме   Ответить с цитированием
Старый 23.03.2017, 18:30   #20
BOBA
Сетевой эльф
 
Аватар для BOBA
 
Регистрация: 27.09.2007
Сообщений: 37,310
BOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мира
↓↓ примерно равная игра

- если беру фору 5 камней и 30% подсказок..... (((( то есть, слабо пока играю, сильно проигрываю на форе 5. на форе 6 тоже нестабильно.
__________________
Магическое зеркало: видеть себя в других, видеть других в себе...
Предпочитаю вежливость.
BOBA на форуме   Ответить с цитированием
Старый 10.04.2017, 18:28   #21
BOBA
Сетевой эльф
 
Аватар для BOBA
 
Регистрация: 27.09.2007
Сообщений: 37,310
BOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мира
1000 строк кода.

===========================

что там есть - возможность играть с двумя движками - один противник, один - советчик.

Из советчиков пока лучший - leela.

таким образом, начинающий игрок может поставить себе задачу - научиться более - менее выигрывать у гну-го без форы и двигаться к ее решению, используя в качестве сильного советчика leela и постепенно уменьшая количество подсказок.

Это уже будет уровень игры, конечно не как у Квита - но проигрыш уже будет непозорным, а осмысленным (т.е. 15 кю на КГС вероятно, а то и получше).


интерфейс усложнился, и его уже надо бы описать - если кому надо, так и сделаю, а мне пока интереснее пользоваться продуктом.

В принципе, именно идей радикального улучшения функциональности нет, предстоит большая шлифовка тренажера. Может сделаю бинарник для винды. Большой - но все же - все-в-одном, через py2exe.

а может и нет - мне самому незачем, других юзеров пока нет. если только для дочки к лету.
__________________
Магическое зеркало: видеть себя в других, видеть других в себе...
Предпочитаю вежливость.
BOBA на форуме   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 13:53.