コード例 #1
0
ファイル: Tester.cs プロジェクト: ZGTR/CRUST-Physics-Engine
        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();
        }
コード例 #2
0
ファイル: Game1.cs プロジェクト: ZGTR/CRUST-Physics-Engine
 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);
 }
コード例 #3
0
ファイル: Tester.cs プロジェクト: ZGTR/CRUST-Physics-Engine
        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();
        }