/// <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))}"); }