Автор |
Сообщение |
Kallisto |
|
Тема сообщения:
Отправлено: Фев 03, 2008 - 04:46 PM
|
|
Зарегистрирован: Авг 18, 2003
Сообщений: 747
|
|
|
|
|
MiG |
|
Тема сообщения:
Отправлено: Фев 03, 2008 - 12:17 PM
|
|
Зарегистрирован: Сен 12, 2002
Сообщений: 391
|
|
Kvadrat писал(а): Если я правильно понимаю, каждая позиция уникальная и имеет свой индекс/ключ. Для позиции вычисляется индекс и по этому индексу она ищется в соответствующем файле и возвращается оценка позиции.
Отвечу вкратце вместо Игоря
Да, Вы всё правильно поняли. Сейчас Вы должны разобраться в исходниках, в которых реализован доступ к ЭБ, и сделать то же самое для своего движка.
Еще один (более простой) вариант — подключить ЭБ через уже имеющийся интерфейс. |
|
|
|
|
|
Kvadrat |
|
Тема сообщения:
Отправлено: Фев 03, 2008 - 07:44 AM
|
|
Зарегистрирован: Дек 16, 2006
Сообщений: 405
|
|
Игорь, если это Вас не затруднит, объясните мне, чайнику, как получить доступ в ЭБ.
Если я правильно понимаю, каждая позиция уникальная и имеет свой индекс/ключ. Для позиции вычисляется индекс и по этому индексу она ищется в соответствующем файле и возвращается оценка позиции. (Я говорю про файл, поскольку мне сейчас не надо грузить базы в память).
Объясните, пожалуйста, на примере этой позиции приведенной в соседней ветке
(ход черных, но полагаю в базе все описано относительно одного цвета)
как вычислить эту позицию и из какого файла по какому смещению вытащить оценку?
Или мне уже ничего не поможет? |
_________________ Пользуюсь всеми доступными программами
|
|
|
|
|
NS |
|
Тема сообщения:
Отправлено: Июнь 07, 2007 - 10:12 AM
|
|
Зарегистрирован: Авг 22, 2006
Сообщений: 671
Откуда : Санкт-Петербург
|
|
Цитата: Кстати, стоит ли делать поддержку ранговых баз? Или безранговых будет вполне достаточно? Между прочим, для движка, поддержку сделать достаточно просто.
Мне ранговые не нужны. |
|
|
|
|
|
Kallisto |
|
Тема сообщения:
Отправлено: Июнь 06, 2007 - 08:10 AM
|
|
Зарегистрирован: Авг 18, 2003
Сообщений: 747
|
|
Нашел одну неточность в 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];
Кстати, стоит ли делать поддержку ранговых баз? Или безранговых будет вполне достаточно? Между прочим, для движка, поддержку сделать достаточно просто. |
|
|
|
|
|
Kallisto |
|
Тема сообщения:
Отправлено: Май 19, 2007 - 05:38 PM
|
|
Зарегистрирован: Авг 18, 2003
Сообщений: 747
|
|
Letas, ничего распаковывать не надо. Эта ветка предназначена исключительно для обсуждения технических деталей между программистами. Я об этом говорил в первом посте.
NS, в загаловочном файле есть такие комментарии:
// загрузить базы
// пока такие типы игр:
// russian
// russianlosers
// brazil
// brazillosers
// pool
// poollosers
// checkers
// checkerslosers
Я думал, что будет понятно [/b] |
|
|
|
|
|
letas |
|
Тема сообщения:
Отправлено: Май 19, 2007 - 05:20 PM
|
|
Зарегистрирован: Фев 08, 2003
Сообщений: 1771
|
|
Kallisto писал(а): Новые исходники SiDra: www.igorkorshunov.narod.ru/sidra_src.rar
- поддержка ЭБ, сжатых с потерей информации
- константы из интерфейсного класса переделаны в перечисления (enum), т.к. не все компиляторы поддерживают константы внутри класса
- добавлен проект для VC++ 6.0
- немного подправлена консольная версия
В какую директорию все это нужно распаковать? |
|
|
|
|
|
NS |
|
Тема сообщения:
Отправлено: Май 19, 2007 - 04:35 PM
|
|
Зарегистрирован: Авг 22, 2006
Сообщений: 671
Откуда : Санкт-Петербург
|
|
Для русских ключевое слово "russian", а какие будут ключевые слова для бразильских и пула? |
|
|
|
|
|
Kallisto |
|
Тема сообщения:
Отправлено: Май 19, 2007 - 06:36 AM
|
|
Зарегистрирован: Авг 18, 2003
Сообщений: 747
|
|
Новые исходники SiDra: www.igorkorshunov.narod.ru/sidra_src.rar
- поддержка ЭБ, сжатых с потерей информации
- константы из интерфейсного класса переделаны в перечисления (enum), т.к. не все компиляторы поддерживают константы внутри класса
- добавлен проект для VC++ 6.0
- немного подправлена консольная версия |
|
|
|
|
|
Kallisto |
|
Тема сообщения:
Отправлено: Май 18, 2007 - 08:11 AM
|
|
Зарегистрирован: Авг 18, 2003
Сообщений: 747
|
|
NS писал(а): Но если обратиться то ответит что такой позиции нет? Или даст неверный ответ?
Можно считать, что ответом будет случайное число. |
|
|
|
|
|
NS |
|
Тема сообщения:
Отправлено: Май 18, 2007 - 06:41 AM
|
|
Зарегистрирован: Авг 22, 2006
Сообщений: 671
Откуда : Санкт-Петербург
|
|
Но если обратиться то ответит что такой позиции нет? Или даст неверный ответ? |
|
|
|
|
|
Kallisto |
|
Тема сообщения:
Отправлено: Май 18, 2007 - 06:00 AM
|
|
Зарегистрирован: Авг 18, 2003
Сообщений: 747
|
|
Вспомнил еще одну важную вещь. Бывают базы, сжатые с потерей информации о позициях, в которых возможны взятия.
Пусть для таких баз функция virtual char *GetBaseType(); возвращает строку в которой будет слово "nocaptures".
Например, для сжатых с потерей информации баз Каллисто эта строка будет:
"Kallisto nocaptures".
Если движок увидел слово "nocaptures" в типе базы он не должен обращаться к базе в позициях, где есть взятия, т.к. получит неправильный ответ.
Завтра добавлю корректную работу со сжатыми базами к SiDra. |
|
|
|
|
|
Kallisto |
|
Тема сообщения:
Отправлено: Май 14, 2007 - 05:55 AM
|
|
Зарегистрирован: Авг 18, 2003
Сообщений: 747
|
|
nikvo писал(а): В русской или бразильской версии?И как исправить?Вытереть и заново записать?
Вы прочитайте еще раз. Это ни к русской ни к бразильской никакого отношения не имеет.
Табличка "base not found" означает, что не хватает каких-то кусков базы. |
|
|
|
|
|
letas |
|
Тема сообщения:
Отправлено: Май 14, 2007 - 03:52 AM
|
|
Зарегистрирован: Фев 08, 2003
Сообщений: 1771
|
|
nikvo писал(а): base not found
Выскакивает табличка такая.Хотя я сгенерировал ЭБ(в бразил)
Вы писали - исправлена идиотская ошибка, из-за которой, иногда, ходы (в корне дерева!) просто выбрасывались из рассмотрения;
В русской или бразильской версии?И как исправить?Вытереть и заново записать?
Такая табличка выскакивает,когда база сгенерирована не до конца.
Проверьте это. |
|
|
|
|
|
nikvo |
|
Тема сообщения:
Отправлено: Май 14, 2007 - 12:13 AM
|
|
Зарегистрирован: Фев 08, 2003
Сообщений: 1251
|
|
base not found
Выскакивает табличка такая.Хотя я сгенерировал ЭБ(в бразил)
Вы писали - исправлена идиотская ошибка, из-за которой, иногда, ходы (в корне дерева!) просто выбрасывались из рассмотрения;
В русской или бразильской версии?И как исправить?Вытереть и заново записать? |
|
|
|
|
|
|