Пример #1
0
//層次
void experimentWorkSpace(){

	//A是產生完 B是計算完branch and dead ends
	//phase A
	GameControl* gameControl = GameControl::getInstance();

	//gameControl->file.open(".\\data\\gameboard20\\db_13.dat");//設定自動產生的關卡要存在哪邊
	//db_release = new GameDB(10, 10);
	//db_release->loadGames(".\\data\\gameboard10\\db_release10_phaseA.dat");
	//loadScore();
	/*GameDB* db = new GameDB(10, 10);
	db->loadGames(".\\data\\gameboard10\\db_release10_phaseB.dat");



	PersonalData* personalData = new PersonalData(".\\data\\gameboard10\\db_ALL_GAME_remove_same.dat");

	personalData->loadScore(".\\statistic\\");
	//personalData->printAllScore();

	Statistic ss;

	for(int i = 0; i < personalData->datas.size(); i ++){
		vector<ScoreData*> sortedScore = 
			personalData->sortbyDifficulty(PersonalData::DIFFICULTY, 
			                               personalData->datas[i]);
		vector<GameState*> complexState = GameControl::getInstance()->
			                              sortbyComplexity(GameControl::ASCENT, 
			                              personalData->getState(sortedScore));


	}*/

	//SimulationAnnealing sa(personalData);
	//GameParameter* p = new GameParameter(1);
	//sa.begin(p);
	
	
	GameDB* veryEasyDB = new GameDB();
	veryEasyDB->loadGames(".\\data\\gameboard10\\db_e2_VeryEasy.dat");

	GameDB* easyDB = new GameDB();
	easyDB->loadGames(".\\data\\gameboard10\\db_e2_Easy.dat");

	GameDB* normalDB = new GameDB();
	normalDB->loadGames(".\\data\\gameboard10\\db_e2_Normal.dat");

	GameDB* hardDB = new GameDB();
	hardDB->loadGames(".\\data\\gameboard10\\db_e2_Hard.dat");

	GameDB* veryHardDB = new GameDB();
	veryHardDB->loadGames(".\\data\\gameboard10\\db_e2_VeryHard.dat");

	vector<GameState*> pickVeryEasyStates = veryEasyDB->getRandomStates(2);
	vector<GameState*> pickEasyStates = easyDB->getRandomStates(3);
	vector<GameState*> pickNormalStates = normalDB->getRandomStates(3);
	vector<GameState*> pickHardStates = hardDB->getRandomStates(1);
	vector<GameState*> pickVeryHardStates = veryHardDB->getRandomStates(1);

	vector<GameState*> releaseStates = easyDB->merge(pickVeryEasyStates, pickEasyStates);
	releaseStates = easyDB->merge(releaseStates, pickNormalStates);
	releaseStates = easyDB->merge(releaseStates, pickHardStates);
	releaseStates = easyDB->merge(releaseStates, pickVeryHardStates);

	releaseStates = GameControl::getInstance()->sortbyComplexity(GameControl::ASCENT, releaseStates);

	easyDB->saveGames(".\\data\\gameboard10\\db_e2_release_random10.dat", releaseStates);

	Statistic ss;
	cout << ss.mean(Statistic::BRANCH, veryEasyDB->states) << endl;
	cout << ss.mean(Statistic::BRANCH, easyDB->states) << endl;
	cout << ss.mean(Statistic::BRANCH, normalDB->states) << endl;
	cout << ss.mean(Statistic::BRANCH, hardDB->states) << endl;
	cout << ss.mean(Statistic::BRANCH, veryHardDB->states) << endl;


	cout << "==============" << endl;
	cout << ss.mean(Statistic::DEADEND, veryEasyDB->states) << endl;
	cout << ss.mean(Statistic::DEADEND, easyDB->states) << endl;
	cout << ss.mean(Statistic::DEADEND, normalDB->states) << endl;
	cout << ss.mean(Statistic::DEADEND, hardDB->states) << endl;
	cout << ss.mean(Statistic::DEADEND, veryHardDB->states) << endl;
	cout << "==============" << endl;

	cout << ss.mean(Statistic::COMPLEXITY, veryEasyDB->states) << endl;
	cout << ss.mean(Statistic::COMPLEXITY, easyDB->states) << endl;
	cout << ss.mean(Statistic::COMPLEXITY, normalDB->states) << endl;
	cout << ss.mean(Statistic::COMPLEXITY, hardDB->states) << endl;
	cout << ss.mean(Statistic::COMPLEXITY, veryHardDB->states) << endl;

	//vector<GameState*> states = db->pickStates(personalData->puzzleDB->states, db->states);
	GameControl::getInstance()->states = veryEasyDB->states;
	gameControl->setStateIndex(0);
	//GameControl::getInstance()->sortSolvedSequence();
	//db->saveGames(".\\data\\gameboard10\\db_ALL_GAME_remove_same.dat", db->states);
	//system("pause");

}