public static void GenerateStatesFilesPlayabilityFromLevelsActionsFiles() { // string path = "160LevelSameCompsPlayable.txt"; string path = "PhysicsEngine_EvolvePlayActions - BadRemoved.txt"; StreamReader sr = new StreamReader(path); string line = String.Empty; while ((line = sr.ReadLine()) != null) { LevelBuilder.CreateRestedLevel(line.Split('\t')[12], false); StaticData.GameSessionMode = SessionMode.PlayingMode; ActionsExecuterGenSim.ListOfActions = new ActionsGenerator(line.Split('\t')[13]).Actions; ActionsExecuterGenSim.IsSimulatingGamePlayability = true; ActionsExecuterGenSim.nextActionIndex = 0; ActionsExecuterGenSim.isFinished = false; ActionsExecuterGenSim.IsSaveStateToFile = true; ActionsExecuterGenSim.IsSaveImage = true; // 1300: arbitrary choice above the 80 max actions var gameTime = new GameTime(); for (int i = 0; i < 1300; i++) { ActionsExecuterGenSim.ManipulateActions(gameTime); StaticData.EngineManager.Update(gameTime); } FilesCounter++; } sr.Close(); }
protected override void Update(GameTime gameTime) { if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) { this.Exit(); } if (ShouldUpdate) { ActionsExecuterGenSim.ManipulateActions(gameTime); StaticData.EngineManager.Update(gameTime); } base.Update(gameTime); }
public static void ExtractComponentToActionExperiment() { string path = "100 Playability PPr.txt"; StreamReader sr = new StreamReader(path); StreamWriter sw = new StreamWriter("ComponentToActionExperiment.txt"); string line = String.Empty; while ((line = sr.ReadLine()) != null) { String levelStr = line.Split('\t')[12]; String actionsStr = line.Split('\t')[13]; LevelBuilder.CreateRestedLevel(levelStr, false); StaticData.GameSessionMode = SessionMode.PlayingMode; ActionsExecuterGenSim.ListOfActions = new ActionsGenerator(actionsStr).Actions; ActionsExecuterGenSim.IsSimulatingGamePlayability = true; ActionsExecuterGenSim.nextActionIndex = 0; ActionsExecuterGenSim.isFinished = false; ActionsExecuterGenSim.IsSaveStateToFile = false; if (false) { EngineShotsManager.ShowXNAWindow(); } var gameTime = new GameTime(); for (int i = 0; i < 1300; i++) { ActionsExecuterGenSim.ManipulateActions(gameTime); StaticData.EngineManager.Update(gameTime); } List <Component> items = new LevelGenerator(levelStr).Items; items.RemoveAt(0); items.RemoveAt(0); List <Action> actions = ActionsExecuterGenSim.ListOfActions; int nrOfNonVoids = actions.FindAll(a => !(a is VoidAction)).Count; actions = actions.FindAll(a => !(a is VoidAction)).ToList(); RyseUsageManager usageManager = new RyseUsageManager(items, actions); StaticData.RyseComponentsUsageHelper = usageManager; usageManager.DoAnalysis(); int nrOfBumps = items.FindAll(item => (item is Bump)).Count; int nrOfRockets = items.FindAll(item => (item is Rocket)).Count; int nrOfRopes = items.FindAll(item => (item is Rope)).Count; int nrOfBubbles = items.FindAll(item => (item is Bubble)).Count; int nrOfBlowers = items.FindAll(item => (item is Blower)).Count; int nrOfUsedComps = usageManager.UsedRopes + usageManager.UsedRocket + usageManager.UsedBlowers + usageManager.UsedBubbles + usageManager.UsedBumps; int nrONonfUsedComps = items.Count - nrOfUsedComps; double actionsToComponentsRatio = (nrOfUsedComps) / (double)items.Count; sw.WriteLine(items.Count + "\t" + (nrOfNonVoids + usageManager.UsedBumps) + "\t" + nrOfUsedComps + "\t" + nrONonfUsedComps + "\t" + actionsToComponentsRatio + "\t" + usageManager.UsedRopes + "\t" + usageManager.UsedRocket + "\t" + usageManager.UsedBlowers + "\t" + usageManager.UsedBubbles + "\t" + usageManager.UsedBumps + "\t" + nrOfRopes + "\t" + nrOfRockets + "\t" + nrOfBlowers + "\t" + nrOfBubbles + "\t" + nrOfBumps + "\t" + usageManager.UsedRopes / (double)nrOfRopes + "\t" + usageManager.UsedRocket / (double)nrOfRockets + "\t" + usageManager.UsedBlowers / (double)nrOfBlowers + "\t" + usageManager.UsedBubbles / (double)nrOfBubbles + "\t" + usageManager.UsedBumps / (double)nrOfBumps); sw.Flush(); } sr.Close(); }