#include "a_structure.h"
//-----------------------------------------------------------------------------------
/*
 * обрабатываем команду на старт
 *
 * АВТОР ChessTerminator75
 * ПОСЛЕДНЕЕ ИЗМЕНЕНИЕ 22.02.2009
*/
//---------------------------------------------------------------------------

/*******************************************
 разбираем команду go и запускаем расчет

 реализована поддержка следующих команд:
команды для блица типа 5 мин либо 5 мин + добавление за ход в секундах
 > go btime 300000 wtime 300000 
 for game in 5min. 

 > go btime 302000 wtime 302000 winc 2000 binc 2000 
 with incremental clock 5 min + 2 sec. 

 время на определенное количество ходов
 > go movestogo 40 wtime 300000 btime 300000 
 for 40 moves in 5 min. 
 причем арена выдает в виде
 > go wtime 300000 btime 300000  movestogo 40

 это понятно что для анализа
 > go infinite 
 for analysing. 

 время на ход говорят что фриц не поддерживает а по моему все он держит надо проверять
 > go movetime 300000 
 Exactly 5min for the next move, not supported by Fritz. 

поиск на заданную глубину
> go depth 5 
********************************************/
class GO{

char string_in_l[65536];//используем в функции parse_go

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

//---------------------------------------------------------------------------
/*
разбираем команду go и устанавливаем режим игры

 команды для блица типа 5 мин либо 5 мин + добавление за ход в секундах
 > go btime 300000 wtime 300000 
 for game in 5min. 

 > go btime 302000 wtime 302000 winc 2000 binc 2000 
 with incremental clock 5 min + 2 sec. 

 время на определенное количество ходов
 > go movestogo 40 wtime 300000 btime 300000 
 for 40 moves in 5 min. 
 причем арена выдает в виде
 > go wtime 300000 btime 300000  movestogo 40

 это понятно что для анализа
 > go infinite 
 for analysing. 

 время на ход говорят что фриц не поддерживает а по моему все он держит надо проверять
 > go movetime 300000 
 Exactly 5min for the next move, not supported by Fritz. 

поиск на заданную глубину
> go depth 5 
*/
void parse_go(struct T_Bitboard * const p_bitboard,//доска
			  const char string_in[]//строка команд
			  );


//////////////////////////////////////////////////////////////////////////////////////////
private:

//-----------------------------------------------------------------------------------
// есть ли в строке искомая подстрока
bool string_equal(const char s1[], const char s2[]);
//-----------------------------------------------------------------------------------

//-----------------------------------------------------------------------------------
// есть ли в начале строки искомая подстрока
bool string_start_with(const char s1[], const char s2[]);
//-----------------------------------------------------------------------------------

};//class GO
