Google
 

Сайт Андрея Иванова

Андрей Иванов - все секреты шашек и шашистов

Login





 


 Забыли пароль?
 или новый пользователь? Зарегистрируйся!

Кто с нами

Пользователей:  На сайте
Пользователей:  Пользователей: 0
Гостей:  Гостей: 5
Всего:  Всего: 5
Пользователей:  Зарегистрированные
No members connected


Новая тема   Ответить
Предыдущая тема Версия для печати Войти и проверить личные сообщения Следующая тема
Автор Сообщение
gluk
Тема сообщения:   СообщениеОтправлено: Янв 20, 2018 - 12:33 PM



Зарегистрирован: Июнь 08, 2005
Сообщений: 2337

060. ШВР. "Междометия". 03.12.2016.



Решение см. по ссылке
http://toernooibase.kndb.nl/applet/oert ... 611234.gif

финал

 
 Профиль пользователя отправить личное сообщение  
Ответить с цитатой Наверх
gluk
Тема сообщения:   СообщениеОтправлено: Мар 23, 2017 - 08:07 AM



Зарегистрирован: Июнь 08, 2005
Сообщений: 2337

059. Zubov's PROBLEMS (final LOCK, "Запирание"). 19.08.2016.



Решение см. по ссылке
http://toernooibase.kndb.nl/applet/oert ... 324461.gif

финал



059A. Zubov's PROBLEMS (final LOCK, "Запирание"). 19.08.2016.



Решение см. по ссылке
http://toernooibase.kndb.nl/applet/oert ... 637055.gif
 
 Профиль пользователя отправить личное сообщение  
Ответить с цитатой Наверх
gluk
Тема сообщения:   СообщениеОтправлено: Мар 22, 2017 - 09:18 AM



Зарегистрирован: Июнь 08, 2005
Сообщений: 2337

058. Zubov's PROBLEMS (final LOCK, "Запирание"). 17.08.2016.[



Решение см. по ссылке
http://toernooibase.kndb.nl/applet/oert ... 185243.gif

финал

 
 Профиль пользователя отправить личное сообщение  
Ответить с цитатой Наверх
gluk
Тема сообщения:   СообщениеОтправлено: Мар 05, 2017 - 04:37 PM



Зарегистрирован: Июнь 08, 2005
Сообщений: 2337

057. Zubov's PROBLEMS (final LOCK, "Запирание"). 17.08.2016.



Решение см. по ссылке
http://toernooibase.kndb.nl/applet/oert ... 924656.gif

финал

 
 Профиль пользователя отправить личное сообщение  
Ответить с цитатой Наверх
gluk
Тема сообщения:   СообщениеОтправлено: Мар 02, 2017 - 10:55 AM



Зарегистрирован: Июнь 08, 2005
Сообщений: 2337

056. Zubov's PROBLEMS (final LOCK, "Запирание"). 16.08.2016.



Решение см. по ссылке
http://toernooibase.kndb.nl/applet/oert ... 529631.gif

финал

 
 Профиль пользователя отправить личное сообщение  
Ответить с цитатой Наверх
gluk
Тема сообщения:   СообщениеОтправлено: Фев 20, 2017 - 09:00 AM



Зарегистрирован: Июнь 08, 2005
Сообщений: 2337

055. Zubov's PROBLEMS (final LOCK, "Запирание"). 07.08.2016.



Решение см. по ссылке
http://toernooibase.kndb.nl/applet/oert ... 794061.gif

финал

 
 Профиль пользователя отправить личное сообщение  
Ответить с цитатой Наверх
gluk
Тема сообщения:   СообщениеОтправлено: Фев 19, 2017 - 03:37 PM



Зарегистрирован: Июнь 08, 2005
Сообщений: 2337

054. Zubov's PROBLEMS (final LOCK, "Запирание"). 11.07.2016.



Решение см. по ссылке
http://toernooibase.kndb.nl/applet/oert ... 782472.gif

финал

 
 Профиль пользователя отправить личное сообщение  
Ответить с цитатой Наверх
gluk
Тема сообщения:   СообщениеОтправлено: Фев 19, 2017 - 03:35 PM



Зарегистрирован: Июнь 08, 2005
Сообщений: 2337

Я о том, что зачем преобразовывать позицию в 32-битное либо 64-битное число. Её можно просто скопировать в 32-байтный массив, а преобразование в индекс уже делать в оболочке.
 
 Профиль пользователя отправить личное сообщение  
Ответить с цитатой Наверх
gluk
Тема сообщения:   СообщениеОтправлено: Фев 16, 2017 - 01:50 PM



Зарегистрирован: Июнь 08, 2005
Сообщений: 2337

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

Размерность базы возвращает Load(). Или ты о чем-то другом?
 
 Профиль пользователя отправить личное сообщение  
Ответить с цитатой Наверх
gluk
Тема сообщения:   СообщениеОтправлено: Янв 21, 2017 - 12:37 PM



Зарегистрирован: Июнь 08, 2005
Сообщений: 2337

А зачем такие сложности?
Не проще ли дать просто ссылку на Таблицу "board"?
У меня, на делфях миллион копирований в другой формат представления доски занимает 50 мс.
20 миллионов копирований в секунду.

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

И дополнительно нужна вторая функция возвращающая размерность ЭБ.

То есть прямого доступа к ЭБ нет, есть только две функция - первая возвращает оценку, вторая размерность ЭБ.
 
 Профиль пользователя отправить личное сообщение  
Ответить с цитатой Наверх
gluk
Тема сообщения:   СообщениеОтправлено: Янв 13, 2017 - 01:09 PM



Зарегистрирован: Июнь 08, 2005
Сообщений: 2337

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

Вот первый вариант интерфейса.

Код:

#define DB_DRAW      10000
#define DB_WIN       10001
#define DB_LOSE      10002
#define DB_UNKNOWN   10003
#define DB_NOT_FOUND 555555


// флаги для доступа к базе

#define DB_IN_MEMORY 1


// коды для обозначений шашек

#define EMPTY   1
#define WHITE   2
#define BLACK   4
#define KING   8

// т.е. код белой дамки - 10

struct EdBoard1
{
   // все поля идут по порядку a8, c8, и т.д. до g1
   unsigned char board[32];
};

struct EdBoard2
{
   unsigned char *wman;
   unsigned wman_cnt;

   unsigned char *wkings;
   unsigned wkings_cnt;

   unsigned char *bman;
   unsigned bman_cnt;

   unsigned char *bkings;
   unsigned bkings_cnt;
};

// интерфейсный класс для доступа к базам
struct EdAccess
{
   // загрузить базы
   unsigned Load() = 0;

   // получить тип базы
   char *GetBaseType() = 0;

   // оценка позиции (всегда ход белых)
   int GetResult(EdBoard1 *board, unsigned flags) = 0;
   int GetResult(EdBoard2 *board, unsigned flags) = 0;

   // получить указатель на таблицу по материалу
   unsigned GetTable(unsigned wm, unsigned wk, unsigned bm, unsigned bk) = 0;

   // получить указатель на таблицу по материалу и по наиболее продвинутой шашке
   unsigned GetTable(unsigned wm, unsigned wk, unsigned bm, unsigned bk, unsigned rank) = 0;

   // проверка загруженности таблицы целиком в память
   unsigned IsTableInMemory(unsigned table);

   // получить индекс в таблице
   unsigned __int32 GetIndex(EdBoard1 *board) = 0;
   unsigned __int32 GetIndex(EdBoard2 *board) = 0;

   // получить оценку по указателю на таблицу и индексу
   int GetResult(unsigned table, unsigned __int32 index, unsigned flags) = 0;
};


// функция интерфейса экспортируемая из dll
__declspec(dllexport) void __stdcall EI_EGDB(EdAccess *eda)
{
   // здесь должен быть код
   // сохраняющий указатель на интерфейс во внутренние переменные движка
   // вызывающий загрузку базу?
}


Здесь я сомневаюсь по одному моменту. Хватит ли 32-х бит для индексирования больших таблиц?
Если нет, то стоит ли все базы индексировать 64-мя битами или для младших баз все-таки оставить 32 бита?
 
 Профиль пользователя отправить личное сообщение  
Ответить с цитатой Наверх
SB
Тема сообщения:   СообщениеОтправлено: Янв 13, 2017 - 11:46 AM



Зарегистрирован: Дек 18, 2007
Сообщений: 2528

049 — ЧУДО!!!
 
 Профиль пользователя отправить личное сообщение  
Ответить с цитатой Наверх
gluk
Тема сообщения:   СообщениеОтправлено: Янв 13, 2017 - 10:13 AM



Зарегистрирован: Июнь 08, 2005
Сообщений: 2337

049. Чемпионат Москвы- 1978.



Решение см. по ссылке
http://toernooibase.kndb.nl/applet/oert ... 376645.gif

финал
 
 Профиль пользователя отправить личное сообщение  
Ответить с цитатой Наверх
gluk
Тема сообщения:   СообщениеОтправлено: Янв 13, 2017 - 10:10 AM



Зарегистрирован: Июнь 08, 2005
Сообщений: 2337

048. Международный конкурс KVD - 1989.



Решение см. по ссылке
http://toernooibase.kndb.nl/applet/oert ... 712783.gif

финал
 
 Профиль пользователя отправить личное сообщение  
Ответить с цитатой Наверх
gluk
Тема сообщения:   СообщениеОтправлено: Янв 12, 2017 - 02:09 PM



Зарегистрирован: Июнь 08, 2005
Сообщений: 2337

047. Международный конкурс Lietuva - 1991. 1 место.



Решение см. по ссылке
http://toernooibase.kndb.nl/applet/oert ... 125335.gif

финал
 
 Профиль пользователя отправить личное сообщение  
Ответить с цитатой Наверх
Показать:     
Перейти к:  
Время в формате GMT + 3
Новая тема   Ответить
Предыдущая тема Версия для печати Войти и проверить личные сообщения Следующая тема
PNphpBB2 © 2003-2007 
 
Page created in 1.2132530212402 seconds.