Обсуждение интерфейса для доступа к ЭБ

Главная Форумы Шашечные программы Программа Каллисто Обсуждение интерфейса для доступа к ЭБ

Просмотр 14 сообщений - с 46 по 59 (из 59 всего)
  • Автор
    Сообщения
  • #370586
    letas
    Участник

    base not found

    Выскакивает табличка такая.Хотя я сгенерировал ЭБ(в бразил)

    Вы писали — исправлена идиотская ошибка, из-за которой, иногда, ходы (в корне дерева!) просто выбрасывались из рассмотрения;

    В русской или бразильской версии?И как исправить?Вытереть и заново записать?

    Такая табличка выскакивает,когда база сгенерирована не до конца.
    Проверьте это.

    #370587
    Kallisto
    Участник

    В русской или бразильской версии?И как исправить?Вытереть и заново записать?

    Вы прочитайте еще раз. Это ни к русской ни к бразильской никакого отношения не имеет.
    Табличка «base not found» означает, что не хватает каких-то кусков базы.

    #370588
    Kallisto
    Участник

    Вспомнил еще одну важную вещь. Бывают базы, сжатые с потерей информации о позициях, в которых возможны взятия.

    Пусть для таких баз функция virtual char *GetBaseType(); возвращает строку в которой будет слово «nocaptures«.

    Например, для сжатых с потерей информации баз Каллисто эта строка будет:
    «Kallisto nocaptures«.

    Если движок увидел слово «nocaptures» в типе базы он не должен обращаться к базе в позициях, где есть взятия, т.к. получит неправильный ответ.

    Завтра добавлю корректную работу со сжатыми базами к SiDra.

    #370589
    NS
    Участник

    Но если обратиться то ответит что такой позиции нет? Или даст неверный ответ?

    #370590
    Kallisto
    Участник

    Но если обратиться то ответит что такой позиции нет? Или даст неверный ответ?

    Можно считать, что ответом будет случайное число.

    #370591
    Kallisto
    Участник

    Новые исходники SiDra: http://www.igorkorshunov.narod.ru/sidra_src.rar

    — поддержка ЭБ, сжатых с потерей информации
    — константы из интерфейсного класса переделаны в перечисления (enum), т.к. не все компиляторы поддерживают константы внутри класса
    — добавлен проект для VC++ 6.0
    — немного подправлена консольная версия

    #370592
    NS
    Участник

    Для русских ключевое слово «russian«, а какие будут ключевые слова для бразильских и пула?

    #370593
    letas
    Участник

    Новые исходники SiDra: http://www.igorkorshunov.narod.ru/sidra_src.rar

    — поддержка ЭБ, сжатых с потерей информации
    — константы из интерфейсного класса переделаны в перечисления (enum), т.к. не все компиляторы поддерживают константы внутри класса
    — добавлен проект для VC++ 6.0
    — немного подправлена консольная версия

    В какую директорию все это нужно распаковать?

    #370594
    Kallisto
    Участник

    Letas, ничего распаковывать не надо. Эта ветка предназначена исключительно для обсуждения технических деталей между программистами. Я об этом говорил в первом посте.

    NS, в загаловочном файле есть такие комментарии:

    // загрузить базы
    // пока такие типы игр:
    // russian
    // russianlosers
    // brazil
    // brazillosers
    // pool
    // poollosers
    // checkers
    // checkerslosers

    Я думал, что будет понятно :)[/b]

    #370595
    Kallisto
    Участник

    Нашел одну неточность в SiDra при использовании баз с потерей взятий.
    В RootSearch() после генерации ходов должен быть такой код:


    if (!EdNocaptures || MoveBuffer[0].cap_sq[0]) EdRoot[stm] = EdProbe();
    else EdRoot[stm] = EdAccess::not_found;
    if (EdRoot[stm] == EdAccess::win) EdRoot[stm ^ CHANGE_COLOR] = EdAccess::lose;
    else if (EdRoot[stm] == EdAccess::lose) EdRoot[stm ^ CHANGE_COLOR] = EdAccess::win;
    else EdRoot[stm ^ CHANGE_COLOR] = EdRoot[stm];

    Кстати, стоит ли делать поддержку ранговых баз? Или безранговых будет вполне достаточно? Между прочим, для движка, поддержку сделать достаточно просто.

    #370596
    NS
    Участник

    Кстати, стоит ли делать поддержку ранговых баз? Или безранговых будет вполне достаточно? Между прочим, для движка, поддержку сделать достаточно просто.

    Мне ранговые не нужны.

    #370597
    Kvadrat
    Участник

    Игорь, если это Вас не затруднит, объясните мне, чайнику, :-( как получить доступ в ЭБ.
    Если я правильно понимаю, каждая позиция уникальная и имеет свой индекс/ключ. Для позиции вычисляется индекс и по этому индексу она ищется в соответствующем файле и возвращается оценка позиции. (Я говорю про файл, поскольку мне сейчас не надо грузить базы в память).
    Объясните, пожалуйста, на примере этой позиции приведенной в соседней ветке

    (ход черных, но полагаю в базе все описано относительно одного цвета)
    как вычислить эту позицию и из какого файла по какому смещению вытащить оценку?
    Или мне уже ничего не поможет? 😥 😥 😥

    #370598
    MiG
    Участник

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

    Отвечу вкратце вместо Игоря :)

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

    Еще один (более простой) вариант — подключить ЭБ через уже имеющийся интерфейс.

    #370599
    Kallisto
    Участник

    Исходники библиотеки для доступа к ЭБ — http://www.igorkorshunov.narod.ru/EdAccess.rar

    Пример использования — http://www.igorkorshunov.narod.ru/sidra_src.rar

Просмотр 14 сообщений - с 46 по 59 (из 59 всего)
  • Для ответа в этой теме необходимо авторизоваться.
138 запросов за 0,923 секунд.