Программирование Го

Тема в разделе "Машинное отделение", создана пользователем WildCat, 11 май 2006.

  1. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Насчет повторения позиции - чтоб не делать 300 проверок (хотя реально врятли это может замедлить, медленная ОФ...) Можно в структуре для отслеживания повторений хранить вместе с Хешем позиции - Максимальное количество камней в предыдущих позициях, и количество камней в этой позиции... (Для простоты - суммарно белых и черных)
    MaxStone,CurStone...
    При добавлении новой позиции -
    MaxStone:=Max(MaxStone[i-1],CurStone[i-1]);
    CurStone:=CurStonePos;
    При проверке -
    While MaxStone>=CurStonePos do
    Begin
    Dec(i);
    ......
  2. dees Учаcтник

    • Участник
    Рег.:
    09.05.2006
    Сообщения:
    17
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Можно пример ini-файла?
    что-то не могу запустить
  3. dees Учаcтник

    • Участник
    Рег.:
    09.05.2006
    Сообщения:
    17
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    это намек или что?
    Как запустить вот это?
  4. TopicStarter Overlay

    WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    В посте №17 описывается ini.

    Вот пример:
    9
    D:\Go\Volna\Release\Volna.exe

    d:\Go\Simple\GnuGo36.exe
    --quiet --mode gtp
    0 60 10
  5. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    А результат партии оболочка/движок не считает?
  6. dees Учаcтник

    • Участник
    Рег.:
    09.05.2006
    Сообщения:
    17
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Спасибо

    У меня было две ошибки:
    1) путь к Volna.exe указывал не полным (т.е. не C:\...\volna.exe, а просто volna.exe, так как оба файла в одной директории лежат)
    2) три последних числа (настройки времени) я вбил в три отдельных строки

    После исправления все запустилось, работает.
    Пока заметил следующее:
    Если стравить две волны, то партия всегда заканчивается тем, что выскакивает месседжбокс с надписью "Illegal move". Это баг или фича? :)
  7. Guest

    Рег.:
    Сообщения:
    0
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Понятия не имею о чем идет речь, но посоветую :)
    Попробуйте две копии волны создать в разных директориях.
  8. dees Учаcтник

    • Участник
    Рег.:
    09.05.2006
    Сообщения:
    17
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    не помогло
  9. TopicStarter Overlay

    WildCat Коршунов Игорь

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

    ОФ получилась не очень адекватная нужно будет с ней разбираться.

    NS!
    А где твой движок? Первая версия не должна быть очень сильной. Лишь бы работала.
  10. atoku Модератор

    • Команда форума
    Рег.:
    05.02.2006
    Сообщения:
    2.949
    Симпатии:
    9
    Репутация:
    0
    Адрес:
    USA
    Оффлайн
    Вопрос модераторам: а почему все потерли, не перенесли? Ведь есть же возможность?
  11. NS Нефёдов Сергей

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

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Ну что - начал писать. Описание протокола не читал. делаю вывод как у Волны...
    Сейчас прикрутил команды -
    > name
    > version
    > boardsize
    > clear_board
    > play
    > showboard
    > time_left
    > genmove
    > quit
    Вопрос - зачем нужна команда time_settings ?
    И есть ли другие команды...
  13. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    С первого раза не вышло - сначала хозяин ветки меня попросил удалить флуд, что я и начал делать. Затем поступило предложение о новой ветке. Но половины постов уже не было, а остальные без контекста повисали в воздухе...
  14. TopicStarter Overlay

    WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    У time_settings три параметра:

    time_settings base_time period_time period_stones

    base_time - основное время, когда оно кончится, начинается переодический контроль (как в WinBoard), время на определенное число камней.

    Другие команды есть, но для игры они не нужны. Может только команды установки гандикапа. Но я не люблю игры с гандикапом.

    Atoku!
    Я думаю не стоит сожалеть о флуде. Таким флудом переполнена куча инетовских форумов.
  15. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Да, но потом же всё равно посылается команда time_left
    В которой в двух параметрах - количество ходов до контроля и оставшееся время...
    в time_settings
    Gotm шлет только третий параметр - его явно недостаточно, чтоб расчитывать время для обдумывания хода...
    Насчет расхода времени - если ход делается моментально время всяко не должно тикать, а тикает....
    Ходов за 20-30 расходуется 10 секунд.
  16. TopicStarter Overlay

    WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    У меня, если ходят моментально, то часы не тикают (движки WallyPlus, RandyPlys, Brown).

    Серьезно? Проверю...

    В time_left - это текущее оставшееся время и кол-во оставшихся камней, а time_settings - это двойной контроль на всю партию.
  17. TopicStarter Overlay

    WildCat Коршунов Игорь

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

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

    С оценкой ты перемудрил - центральная стратегия в ГО очень плоха. Чтоб программа играла нормально нужно отталкиваться от краев/углов... Моя оценка (один признак, описанный изначально) учитывает близость поля к краю...
    Сегодня (ночью) вышлю тебе первую версию в ней -
    Подсчет результата партии,
    Игра по Китайским правилам (позиционное КО),
    Суицид есно запрещен,
    Простейшая оценка позиции (только камни, поля уже окруженные, и поля имеющие путь длины не больше двух(трех) До минимум двух своих камней, либо камню и углу, и не имеющие такого пути до камней соперника)
    ФВ
    Снятие мертвых одиночных камней в окруженной зоне.
    После двух пасов - оценка по Китайским правилам (так же и в переборе)
    Контроль времени - уже описанный выше...
    Играет на любой доске до 19x19 включительно.
    Коми протоколом задается?
  19. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Гандикап, надеюсь, поддерживается?
    Тогда можно и с ГнуГо сравнить, поставить там девять камней форы, скажем...
  20. NS Нефёдов Сергей

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

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Я не предлагаю давать 9 камней. Я предлагаю их брать.
  22. TopicStarter Overlay

    WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Подфиксил все замеченные баги. Завтра будет новая версия.
    Уже играет круче WallyPlus (просто он совсем тупой)! Но ОФ все еще неадекватна.


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

    > После двух пасов - оценка по Китайским правилам (так же и в переборе)

    Результат партии нужно выдавать в ответ на команду 'final_score'.

    Может сделаю гандикап. Как лучше, чтобы движок сам выбирал куда лишние камни ставить или ставить на фиксированные места?
  23. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    По японским правилам пункты гандикапа фиксированные. См. http://senseis.xmp.net/?path=Handicap&page=HandicapPlacement

    По китайским - гандикап свободный. Но лучше, чтобы программа поддерживала как минимум японское размещение, это почти стандарт де факто. Даже если камни считать будет по-китайски.
  24. NS Нефёдов Сергей

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

    Гандикап действительно наверно проще задавать по японским правилам.
    Что там в Китайских/Японских правилах с вычитанием форовых камней из результата партии?
  25. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    1. Да, тут ещё важно, чтобы программа понимала форовые камни так же, как и большинство её оппонентов. Чтобы можно было тестовые партии проводить. А большинство ставит как раз по-японски.
    2. Никакого вычитания форовых камней при подсчёте результата нет, ни по китайской системе, ни по японской. Играется так, как будто дающий фору просто несколько раз сказал в начале партии "пас", а соперник ответил на эти пасы ходами в форовые точки.
  26. NS Нефёдов Сергей

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

    WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Вот новая версия: www.igorkorshunov.narod.ru/gotm.rar

    Добавил гандикап по китайским правилам.

    Первый раз победила ГнуГо 3.6 на доске 9x9 только с 6 камнями форы :(
    Да и то из-за того, что ГнуГо напугался неподецки. Слишком много было вражеских камней.

    ОФ надо переделывать :)
  28. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    И все же - с почином! Лиха беда начало :)

    Насчёт ОФ... Да, осталась самая малость - написать оценочную функцию. Ну, как в физике начала двадцатого века - "осталось одно маленькое облачко на горизонте...", ага. Жалко только, поля слишком узкие, чтобы решение записать :)
  29. NS Нефёдов Сергей

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

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

    WildCat Коршунов Игорь

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

    Когда уже мы увидим твой движок?
  32. NS Нефёдов Сергей

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

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

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

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

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