Главная › Форумы › Шашечные программы › Программа Каллисто › Обсуждение интерфейса для доступа к ЭБ
- В этой теме 58 ответов, 7 участников, последнее обновление 16 лет, 8 месяцев назад сделано Kallisto.
-
АвторСообщения
-
14.05.2007 в 02:52 #370586letasУчастник
base not found
Выскакивает табличка такая.Хотя я сгенерировал ЭБ(в бразил)
Вы писали — исправлена идиотская ошибка, из-за которой, иногда, ходы (в корне дерева!) просто выбрасывались из рассмотрения;
В русской или бразильской версии?И как исправить?Вытереть и заново записать?
Такая табличка выскакивает,когда база сгенерирована не до конца.
Проверьте это.14.05.2007 в 04:55 #370587KallistoУчастникВ русской или бразильской версии?И как исправить?Вытереть и заново записать?
Вы прочитайте еще раз. Это ни к русской ни к бразильской никакого отношения не имеет.
Табличка «base not found» означает, что не хватает каких-то кусков базы.18.05.2007 в 05:00 #370588KallistoУчастникВспомнил еще одну важную вещь. Бывают базы, сжатые с потерей информации о позициях, в которых возможны взятия.
Пусть для таких баз функция virtual char *GetBaseType(); возвращает строку в которой будет слово «nocaptures«.
Например, для сжатых с потерей информации баз Каллисто эта строка будет:
«Kallisto nocaptures«.Если движок увидел слово «nocaptures» в типе базы он не должен обращаться к базе в позициях, где есть взятия, т.к. получит неправильный ответ.
Завтра добавлю корректную работу со сжатыми базами к SiDra.
18.05.2007 в 05:41 #370589NSУчастникНо если обратиться то ответит что такой позиции нет? Или даст неверный ответ?
18.05.2007 в 07:11 #370590KallistoУчастникНо если обратиться то ответит что такой позиции нет? Или даст неверный ответ?
Можно считать, что ответом будет случайное число.
19.05.2007 в 05:36 #370591KallistoУчастникНовые исходники SiDra: http://www.igorkorshunov.narod.ru/sidra_src.rar
— поддержка ЭБ, сжатых с потерей информации
— константы из интерфейсного класса переделаны в перечисления (enum), т.к. не все компиляторы поддерживают константы внутри класса
— добавлен проект для VC++ 6.0
— немного подправлена консольная версия19.05.2007 в 15:35 #370592NSУчастникДля русских ключевое слово «russian«, а какие будут ключевые слова для бразильских и пула?
19.05.2007 в 16:20 #370593letasУчастникНовые исходники SiDra: http://www.igorkorshunov.narod.ru/sidra_src.rar
— поддержка ЭБ, сжатых с потерей информации
— константы из интерфейсного класса переделаны в перечисления (enum), т.к. не все компиляторы поддерживают константы внутри класса
— добавлен проект для VC++ 6.0
— немного подправлена консольная версияВ какую директорию все это нужно распаковать?
19.05.2007 в 16:38 #370594KallistoУчастникLetas, ничего распаковывать не надо. Эта ветка предназначена исключительно для обсуждения технических деталей между программистами. Я об этом говорил в первом посте.
NS, в загаловочном файле есть такие комментарии:
// загрузить базы
// пока такие типы игр:
// russian
// russianlosers
// brazil
// brazillosers
// pool
// poollosers
// checkers
// checkerslosersЯ думал, что будет понятно [/b]
06.06.2007 в 07:10 #370595KallistoУчастникНашел одну неточность в 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];
Кстати, стоит ли делать поддержку ранговых баз? Или безранговых будет вполне достаточно? Между прочим, для движка, поддержку сделать достаточно просто.
07.06.2007 в 09:12 #370596NSУчастникКстати, стоит ли делать поддержку ранговых баз? Или безранговых будет вполне достаточно? Между прочим, для движка, поддержку сделать достаточно просто.
Мне ранговые не нужны.
03.02.2008 в 07:44 #370597KvadratУчастникИгорь, если это Вас не затруднит, объясните мне, чайнику, как получить доступ в ЭБ.
Если я правильно понимаю, каждая позиция уникальная и имеет свой индекс/ключ. Для позиции вычисляется индекс и по этому индексу она ищется в соответствующем файле и возвращается оценка позиции. (Я говорю про файл, поскольку мне сейчас не надо грузить базы в память).
Объясните, пожалуйста, на примере этой позиции приведенной в соседней ветке
(ход черных, но полагаю в базе все описано относительно одного цвета)
как вычислить эту позицию и из какого файла по какому смещению вытащить оценку?
Или мне уже ничего не поможет? 😥 😥 😥03.02.2008 в 12:17 #370598MiGУчастникЕсли я правильно понимаю, каждая позиция уникальная и имеет свой индекс/ключ. Для позиции вычисляется индекс и по этому индексу она ищется в соответствующем файле и возвращается оценка позиции.
Отвечу вкратце вместо Игоря
Да, Вы всё правильно поняли. Сейчас Вы должны разобраться в исходниках, в которых реализован доступ к ЭБ, и сделать то же самое для своего движка.
Еще один (более простой) вариант — подключить ЭБ через уже имеющийся интерфейс.
03.02.2008 в 16:46 #370599KallistoУчастникИсходники библиотеки для доступа к ЭБ — http://www.igorkorshunov.narod.ru/EdAccess.rar
Пример использования — http://www.igorkorshunov.narod.ru/sidra_src.rar
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.