Kallisto

Ответы в темах

Просмотр 8 сообщений - с 721 по 728 (из 728 всего)
  • Автор
    Сообщения
  • в ответ на: Турнир среди шашечных программ #361703
    Kallisto
    Участник

    Даже если будет много продолжений хорошая оценочная функция поможет проге не заблудится в них.

    В большинстве случаев, наверное, так. В случае если в процессе перебора возможно двинуть простые сильнейшей стороны или поставить новую дамку, то этим ходам естественно будет приоритет. Но если в течении 10-15 ходов идет борьба дамками «туда-сюда», то сложно сказать как оценочная функция поможет — иногда для выигрыша нужно дамки увести с большака чтоб разместить их черт знает где (и это единственный путь к кратчайшему выигрышу) :-).

    Чаще всего необходимо максимально ухудшить расположение шашек противника, при этом не особо ухудшив расположение своих.
    Т.е. тут оценочная функция должна помогать.

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

    Но я не считаю, что ради того , что может случится в ~0.01% партий стоит напрягаться.

    в ответ на: Турнир среди шашечных программ #361702
    Kallisto
    Участник

    По-моему здесь явно переоценивают результаты маленьких турниров. Их не стоит принимать слишком всерьез.

    В шахматах большинство уже поняло, что к результатам турниров где каждая прога сыграла по 500 (!!!) партий стоит относится осторожно.
    Всерьез результаты можно воспринимать когда количество партий приближается к 1000. Но и тут следует учитывать погрешность, пусть и достаточно малую.

    Для пары же десятков партий погрешность очень велика. И составить представление о силе игры крайне сложно.

    Конечно, если счет 19 — 1. То тут уже можно быть уверенным.
    Но! 15 — 5 и тут уже вероятность, что вторая прога сильнее достаточно велика. И если хочется знать правду нужно проводить больше партий.

    Kallisto
    Участник

    Я готов поделится своими «секретами». Но не всеми :)

    Каллисто использует для представления доски массив из 45 элеметов.
    А также два массива для белых и черных шашек (т.н. Piece Lists).

    Еще вопросы?

    в ответ на: Генератор возможных ходов #360403
    Kallisto
    Участник

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

    Все понимают что это не так 😆
    На глубину перебора может влиять только очень медленный генератор (сделать такой не так просто).

    Считается, что если шахматный генератор будет выдавать все ходы мгновенно (!!!), то скорость программы возрастет максимум на 10%.
    Это не более 5 очков рейтинга Эло. Что бы заметить такое усиление нужно проводить матч из более чем 10000 партий.

    Я не думаю, что в шашках ситуация значительно отличается.

    Вообще, существует два основных подхода в реализации генераторов:
    — доска представлена в виде массива
    — доска представляется битовыми полями (битбордами BitBoard)

    У каждого подхода свои преимущества и недостатки. Причем, это относится не только к генератору ходов, но и к оценочной функции.

    Современные сильнейшие проги используют оба подхода.
    Каллисто — массив.
    Тундра — битовые поля.

    Если кому-нибудь интересно могу рассказать об этих подходах более подробно.

    в ответ на: Турнир среди шашечных программ #361696
    Kallisto
    Участник

    Я немного начал соображать относительно безранговых баз.
    Кажется выиграть они НЕ помогут, так как в них НЕ указано
    как следует играть. Однако они помогут НЕ проиграть, т.к.
    программа перед тем как сходить может посмотреть,
    а не проигрывающая ли позиция получается? И если ничейная,
    то ходит. А вот выиграть не сможет, особенно, если
    к выигрышу ведет несколько ходов, программа заблудится.
    Т.о. надо в проигрышной позиции как это ни абсурдно
    звучит, НЕ затруднять задачу программе, оставляя ей
    единственное продолжение на выигрыш, а наоборот предоставить
    несколько продолжений, где она и заблудится.
    Поправьте меня если я не прав.
    С уважением, Квадрат.

    В принципе, все правильно.
    Но! Такие выигрышные позы, где прога не в состоянии выиграть самостоятельно в практических партиях встречаются очень редко. Так что это никак не отражается на силе игры.
    Даже если будет много продолжений хорошая оценочная функция поможет проге не заблудится в них.

    Т.е. я считаю что использование безранговых баз вполне оправдано.

    в ответ на: Турнир среди шашечных программ #361695
    Kallisto
    Участник

    «Не знаю, какое лучше поставить время — 5 или 10 минут на партию? Будут ли результативные партии при контроле 10 минут? Полчаса уже точно ставить бессмысленно. Да и не потяну я столько.»

    Дамира, к сожалению, пока понимает только контроль N секунд на ход.

    Контроль «время на партию» легко приделать, если есть «врем на один ход».
    Перед каждым ходом оставшееся время до конца партии делится на 20. Это и будет время на один ход.

    Вообще, контроль «врем на один ход» я считаю крайне вычурным. :P

    Kallisto
    Участник

    Меня заинтересовала эта идея.

    Я готов программировать движок. Но есть некоторые проблемы:
    До сих пор я програмировал только на С/С++ (и немного Pascal).
    Нет опыта программирования сетевых приложений. Но если кто-нибудь может посоветовать хорошую книгу по теме, то я готов начинать программировать движок.
    Я даже готов работать за бесплатно. Для меня эта задача интересна сама по себе (т.к. я еще ничего такого не делал). За деньги было бы, конечно, приятнее :D

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

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

    Пока я могу сделать:
    — шашечный движок позволяющий играть в различные виды шашек
    — почитать о сетевом программировании
    — разобраться с поддержкой многоязыкового интерфейса (знаю людей, которые это уже делали).

    Потом можно приступать к написанию игрового сервера.

    Kallisto
    Участник

    no text

Просмотр 8 сообщений - с 721 по 728 (из 728 всего)