// BEGIN KAWIGIEDIT TESTING
// Generated by KawigiEdit 2.1.4 (beta) modified by pivanof
bool KawigiEdit_RunTest(int testNum, vector <string> p0, vector <string> p1, bool hasAnswer, string p2) {
	cout << "Test " << testNum << ": [" << "{";
	for (int i = 0; int(p0.size()) > i; ++i) {
		if (i > 0) {
			cout << ",";
		}
		cout << "\"" << p0[i] << "\"";
	}
	cout << "}" << "," << "{";
	for (int i = 0; int(p1.size()) > i; ++i) {
		if (i > 0) {
			cout << ",";
		}
		cout << "\"" << p1[i] << "\"";
	}
	cout << "}";
	cout << "]" << endl;
	GameInDarknessDiv2 *obj;
	string answer;
	obj = new GameInDarknessDiv2();
	clock_t startTime = clock();
	answer = obj->check(p0, p1);
	clock_t endTime = clock();
	delete obj;
	bool res;
	res = true;
	cout << "Time: " << double(endTime - startTime) / CLOCKS_PER_SEC << " seconds" << endl;
	if (hasAnswer) {
		cout << "Desired answer:" << endl;
		cout << "\t" << "\"" << p2 << "\"" << endl;
	}
	cout << "Your answer:" << endl;
	cout << "\t" << "\"" << answer << "\"" << endl;
	if (hasAnswer) {
		res = answer == p2;
	}
	if (!res) {
		cout << "DOESN'T MATCH!!!!" << endl;
	} else if (double(endTime - startTime) / CLOCKS_PER_SEC >= 2) {
		cout << "FAIL the timeout" << endl;
		res = false;
	} else if (hasAnswer) {
		cout << "Match :-)" << endl;
	} else {
		cout << "OK, but is it right?" << endl;
	}
	cout << "" << endl;
	return res;
}
// BEGIN CUT HERE
void main( int argc, char* argv[] ) {
	{
		string fieldARRAY[] = {
			"A.B..",
			"##.##",
			"##.##"};
			vector <string> field( fieldARRAY, fieldARRAY+ARRSIZE(fieldARRAY) );
			string movesARRAY[] = {"RRDUR"};
			vector <string> moves( movesARRAY, movesARRAY+ARRSIZE(movesARRAY) );
			GameInDarknessDiv2 theObject;
			eq(0, theObject.check(field, moves),"Alice wins");
	}
	{
		string fieldARRAY[] = {"A.B..",
			"##.##",
			"##..."};
		vector <string> field( fieldARRAY, fieldARRAY+ARRSIZE(fieldARRAY) );
		string movesARRAY[] = {"RRRLD"};
		vector <string> moves( movesARRAY, movesARRAY+ARRSIZE(movesARRAY) );
		GameInDarknessDiv2 theObject;
		eq(1, theObject.check(field, moves),"Bob wins");
	}
	{
		string fieldARRAY[] = {"###.#",
			"###..",
			"A..B#",
			"###..",
			"###.#"};
		vector <string> field( fieldARRAY, fieldARRAY+ARRSIZE(fieldARRAY) );
		string movesARRAY[] = {"RR", "R", "UDD"};
		vector <string> moves( movesARRAY, movesARRAY+ARRSIZE(movesARRAY) );
		GameInDarknessDiv2 theObject;
		eq(2, theObject.check(field, moves),"Alice wins");
	}
	{
		string fieldARRAY[] = {"A.###",
			".B..."};
		vector <string> field( fieldARRAY, fieldARRAY+ARRSIZE(fieldARRAY) );
		string movesARRAY[] = {"RDRRRLLLLUDUDRLURDLUD"};
		vector <string> moves( movesARRAY, movesARRAY+ARRSIZE(movesARRAY) );
		GameInDarknessDiv2 theObject;
		eq(3, theObject.check(field, moves),"Bob wins");
	}
	{
		string fieldARRAY[] = {".....",
			".#.#.",
			"##.#.",
			"A###.",
			"B...."};
		vector <string> field( fieldARRAY, fieldARRAY+ARRSIZE(fieldARRAY) );
		string movesARRAY[] = {"D"};
		vector <string> moves( movesARRAY, movesARRAY+ARRSIZE(movesARRAY) );
		GameInDarknessDiv2 theObject;
		eq(4, theObject.check(field, moves),"Alice wins");
	}
	{
		string fieldARRAY[] = {".#...#....#.......#....#......",
			"...###.#.#..#.#.#..###...#.#.#",
			".#.#...#...#..#..#.....##.#...",
			"#..#.##..##..#.#..###.#....#.#",
			"..#..#..#...#...#....#..##.#..",
			"#..##..#..##.#.#.####..#.#...#",
			".#....##.#.....#......##.#.#..",
			".###.#...#.#.#..#.#.##...##.#.",
			".....#.#.##..#.#..##...##...#.",
			"#.#.#...#...#.#.#...#.#.#.##.#",
			".#..##.#..##..#.###...........",
			"..##.....####.......##.#.#.##.",
			"#....##.#.#...####.#...#.#.#..",
			"#.#.#......##.#...#..#.#..#..#",
			"..#..#.#.##...#.#..#..#..#..#.",
			".#..#...#...#..#..#.#..#..#A#.",
			"..#..#.#.B##.##..#...#.#.##...",
			"#.#.##..#......#.#.#.#.#...#.#",
			"#.#...#.######...#.#.#.#.#.#..",
			"..#.##.#.....#.##..#...#.#.#.#",
			".#..#..#.#.#.#.#..#.#####..#.#",
			"..#.#.##.#.#.##.#......#..#...",
			"#..#.....#.#.....#.#.##..##.#.",
			"##..###.#..#.#.#.#..##..#...##",
			"##.#...#..##.#.#..#.#..#.#.#..",
			"#..#.#.####..#..#..#..#......#",
			"..#..#.....####..#.##.#.###.#.",
			".#..#.####.#.#..#.....#...#...",
			"..##.......#...#..####.##.#.#.",
			"#....#.#.#..#.###....#....#..#"};
		vector <string> field( fieldARRAY, fieldARRAY+ARRSIZE(fieldARRAY) );
		string movesARRAY[] = {"UURURUULLLLLLLLLLDLLLLUDLLUDDLRDDDULLDLLDDRRRRRDDU","RRUUURUULLD"};
		vector <string> moves( movesARRAY, movesARRAY+ARRSIZE(movesARRAY) );
		GameInDarknessDiv2 theObject;
		eq(5, theObject.check(field, moves),"Alice wins");
	}
}