#include "a_structure.h"
//-----------------------------------------------------------------------------------
/*
 * перебор позиций
 *
 * АВТОР ChessTerminator75
 * ПОСЛЕДНЕЕ ИЗМЕНЕНИЕ 17.05.2007
*/
//---------------------------------------------------------------------------

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

/*******************************************
класс QUIESCENCESEARCH

включает в себя данные и методы форсированного перебора:
смотрим только взятия 
используем delta pruning

********************************************/
class QUIESCENCESEARCH {

//////////////////////////////////////////////////////////////////////////////////////////
public:
//---------------------------------------------------------------------------
// просчитываем только взятия для белых
int Forced_variant_white(struct T_Bitboard * const p_bitboard,// представление доски
						 int alpha,//
						 int beta,//
						 int depth,// глубина
		                 const bool flag_pv_f,// основной ли это вариант (pv)
						 const int & depth_max// максимальная глубина
						 );

//---------------------------------------------------------------------------
// просчитываем только взятия для черных
int Forced_variant_black(struct T_Bitboard * const p_bitboard,// представление доски
						 int alpha,//
						 int beta,//
						 int depth,// глубина
		                 const bool flag_pv_f,// основной ли это вариант (pv)
						 const int & depth_max// максимальная глубина
						 );

//////////////////////////////////////////////////////////////////////////////////////////
private:
//---------------------------------------------------------------------------
// сортируем взятия возвращаем количество взятий
inline int Sorting_captures_moves(struct T_list_surplus_moves * const list_surplus_moves// список ходов
								  );

//---------------------------------------------------------------------------
//TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
// печатаем список
// глубина перебора, список
#if TEST_F
void List_Print_F(int depth,// текущая глубина
				  const struct T_list_surplus_moves * list_surplus_moves//список ходов
				  );
#endif
//---------------------------------------------------------------------------

};//class QUIESCENCESEARCH
