コード例 #1
0
    // Runs every frame
    void Update( )
    {
        if (stateNeedsUpdate)
        {
            UpdateState();

            isLogging = true;
            if (isLogging)
            {
                Domain           knownDomain     = playerEnvironmentModel.CompileDomain() as Domain;
                Problem          knownProblem    = playerEnvironmentModel.CompileProblem() as Problem;
                List <IOperator> knownChronology = playerEnvironmentModel.CompileChronology();

                string domainFileName = participantFolder + @"domain_" +
                                        stateManager.PlayerName + playerTurnCounter + ".pddl";

                string problemFileName = participantFolder + @"problem_" +
                                         stateManager.PlayerName + playerTurnCounter + ".pddl";

                string chronologyFileName = participantFolder + @"chronology_" +
                                            stateManager.PlayerName + playerTurnCounter + ".pddl";

                string logFileName = participantFolder + @"log_" + participantID + ".csv";


                // Write all the log data out to file.
                Writer.DomainToPDDL(domainFileName, knownDomain);
                Writer.ProblemToPDDL(problemFileName, knownDomain, knownProblem, playerEnvironmentModel.KnownCurrentState.Predicates);
                Writer.PlanToPDDL(chronologyFileName, knownChronology);
                Writer.ActionLogToCSV(logFileName, actionLog);

                playerTurnCounter++;
            }
        }
    }