#include "a_structure.h"

//-----------------------------------------------------------------------------------
/*
 * реализуем киллеров
 *
 * АВТОР ChessTerminator75
 * ПОСЛЕДНЕЕ ИЗМЕНЕНИЕ  25.02.2009
 *
*/
//---------------------------------------------------------------------------

#define TEST_K 0 // включаем-выключаем(1-0) режим вывода в файл тестовой информации

/*******************************************

  класс реализующий убойную эвристику

  киллер ход это лучший ход найденный до этого на данной глубине
  он не должен быть взятием т.к. с взятиями разговор особый :)

  что значит лучший? 
  это значит  
  что он улучшил альфу и вызвал отсечку по бете
  конечно это для поиска за белых
  для черных улучшил бету и вызвал отсечку по альфе

  прошу не забывать что у меня не негамакс(negamax) а минимакс(minimax)

********************************************/
class SKILLER {

 struct T_killer_moves killer_moves_1;
 struct T_killer_moves killer_moves_2;

//////////////////////////////////////////////////////////////////////////////////////////
public:

//---------------------------------------------------------------------------
// пишем киллера
void Save_killer(int i,// номер хода в списке
				 struct T_list_surplus_moves * p_list_surplus_moves,// список ходов
				 int depth// текущая глубина
				 );


//---------------------------------------------------------------------------
// вставляем киллера в начало списка(позиция start) 
void Insert_killer(struct T_list_surplus_moves * p_list_surplus_moves,// список ходов
				   int depth,// текущая глубина
				   int start//позиция с которой ищем и на которую вставляем киллер
				   );

//---------------------------------------------------------------------------
// инициализируем массив киллеров
void Ini_killer(
			    );

};//class SKILLER
