Esempio n. 1
0
 /// <summary>
 /// 问题解决
 /// 执行每个计划,直到一个计划可以执行并且目标可以被删除为止,或者直到一个都没有执行并且角色未能达到目标为止。 如果目标已经实现(演员知道),则立即返回成功。 如果演员已经有了目标,那么他就陷入了循环并且失败了。 否则,请设定目标并继续前进。
 /// </summary>
 public void ProblemSolver()
 {
     while (MainActor.InMemoryGoal.Count > 0)
     {
         ExecutePlans();
         if (InMemory.Where(w => w.A.Contains("目标未实现")).Any())
         {
             break;
         }
     }
     InMemory.Add(new Goal {
         A = "THE END"
     });
     logger.Information("----------Stack Memory result story -----------------");
     logger.Debug($"{string.Join(",", InMemory.Select(s => s.FullGoal))}");
 }