// 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++; } } }