Игра Реверси использует динамически подключаемые библиотеки (dll) содержащие алгоритм игры компьютера.

Их можно создать самому:









В библиотеке должна быть ЭКСПОРТИРУЕМАЯ функция
 ComputerMove(int x,int y,int board[8][8]);

 На C++ это будет выглядеть примерно так:

  extern "C" __export void __fastcall ComputerMove(int &x, int &y)
  {
  }
функция должна возвращать программе координаты на доске, куда надо поставить фишку.
Координаты считаются от левого верхнего края доски и начинаются с 0.
Доска выглядит так (x - столбец, а y - ряд):
	 Р
	 я
	 д

столбец: 01234567
	 1#######
	 2#######
	 3#######
	 4#######
	 5#######
	 6#######
	 7#######
Функция возвращает программе значения ряда и столбца путём установки соответствующих переменных (x и y),
передаваемых в параметрах функции.

Так же библиотека должна содержать функции
 InitBoard(bool pl, void* nboard);
 GetLibraryInformation(int &level,char* &author,char* &releaseday,char* &version,int &build);

 На C++: 

  extern "C" __export void __fastcall InitBoard(bool pl, void* nboard)
  {
  }
Эта функция вызывается ОДИН раз за всю игру (игр может быть несколько) и является функцией инициализации игры.
Ей в параметрах передаётся цвет игрока (bool pl - если true - белый, иначе - чёрный)
и УКАЗАТЕЛЬ на адрес памяти, содержащей игровую доску.
Перед использованием его необходимо скопировать в переменную типа unsigned char[8][8];

 Например так (C++):
  unsigned char board[8][8];
  extern "C" __export void __fastcall InitBoard(bool pl, void* nboard)
  {
   memcpy(board,nboard,64);
  }

К каждой фишке доски можно иметь доступ путём обращения к массиву фишек как board[номер_ряда][номер_столбца]:
board[номер_ряда][номер_столбца] может принимать только три значения:
0 - в данной позиции стоит белая фишка.
1 - в данной позиции стоит чёрная фишка.
2 - в данной позиции нет фишек.


 Функция (C++)

  extern "C" __export void __fastcall GetLibraryInformation(int &level,char* &author,char* &releaseday,char* &version,int &build)
  {
  }
Должна возвращать Информацию о разработчике библиотеки, которая будет отображена в окне настроек.

 Пример (C++):
 
  extern "C" __export void __fastcall GetLibraryInformation(int &level,char* &author,char* &releaseday,char* &version,int &build)
  {
   level=5;			//Возвращает сложность алгоритма игры компьютера (по 10-ти бальной шкале).
   author="Имя Разработчика";	//Возвращает имя разработчика библиотеки.
   releaseday="22.08.2002";	//Возвращает дату создания библиотеки.
   version="1.1 beta 1";	//Возвращает версию данной библиотеки.
   build=75;			//Возвращает номер билда данной версии.
  }