//層次 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"); }