public string Run(string input) { if (string.IsNullOrEmpty(input)) { return(Resources.BadInput); } if (input.ToLower().StartsWith(strategy_cmd)) { string strategy = input.ToLower().Replace(strategy_cmd, "").Trim(); eStrategy strategyEnum = eStrategy.none; if (_strategyResolver != null && Enum.TryParse(strategy, out strategyEnum)) { _answerStrategy = _strategyResolver(strategyEnum); return(Resources.AnswerStrategy + " " + strategyEnum.ToString()); } } else if (_strategyResolver != null) { return(_answerStrategy.GetAnswer(_content)); } return(Resources.Error); }
public static IStrategy ResolveStrategy(eStrategy strategy) { switch (strategy) { case eStrategy.rand: return(new RandomStrategy()); case eStrategy.downseq: case eStrategy.none: case eStrategy.upseq: default: return(_default); } }
static void Main(string[] args) { if (args == null || args.Length != 4) { Console.WriteLine(Resources.WrongArgs); return; } Parser parser = new Parser(args); string strategy = string.Empty; string filePath = string.Empty; eStrategy eStrategy = eStrategy.none; if (!parser.GetArgValue("-r", out strategy) && !Enum.TryParse(strategy.ToLower(), out eStrategy)) { Console.WriteLine(Resources.BadStrategy); return; } if (!parser.GetArgValue("-f", out filePath) || string.IsNullOrEmpty(filePath) || !File.Exists(Path.GetFullPath(filePath))) { string path = Path.GetFullPath(filePath).Replace("\\", "\\"); if (!File.Exists(path)) { Console.WriteLine(Resources.BadFile); return; } } filePath = Path.GetFullPath(filePath); string[] content = File.ReadAllLines(filePath); IStrategy answerStrategy = Helper.ResolveStrategy(eStrategy); if (answerStrategy == null) { Console.WriteLine(Resources.NoStrategy); return; } ChatBot bot = new ChatBot(content, answerStrategy, Helper.ResolveStrategy); while (true) { Console.WriteLine(bot.Run(Console.ReadLine())); } }
//----------------------------------------------------------------------------------------------- public void OnGUI() { if (m_strategyPlanner == null) { EditorGUILayout.LabelField("No strategy planner in scene!"); } EditorGUILayout.BeginHorizontal(); { if (GUILayout.Button("Execute Next Agent") && m_strategyPlanner.ActivePlan.TaskList.Count != 0) { ExecuteNextTaskForNextAgent(); } if (GUILayout.Button("Execute All Agents") && m_strategyPlanner.ActivePlan.TaskList.Count != 0) { ExecuteNextTaskForAllAgents(); } if (GUILayout.Button("Replan")) { ClearCurrentAndMakeNewPlan(); } if (GUILayout.Button("Reload Domain and Replan")) { ReloadDomainAndMakeNewPlan(); } } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); { //if (m_restorePoint == null) //{ // EditorGUILayout.LabelField("No Restore Point Present!"); //} //else //{ // EditorGUILayout.LabelField("Restore Point Present"); //} //if (GUILayout.Button("Create Restore Point")) //{ // CreateRestorePoint(); //} //if (GUILayout.Button("Revert To Restore Point")) //{ // RevertToRestorePoint(); //} } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); { if (m_restorePoint != null) { EditorGUILayout.LabelField("Restore Point Saved"); } else { EditorGUILayout.LabelField("No Restore Point Present"); } if (GUILayout.Button("Create Restore Point")) { CreateRestorePoint(); } if (m_restorePoint != null) { if (GUILayout.Button("Revert To Restore Point")) { RevertToRestorePoint(); } } } EditorGUILayout.EndHorizontal(); eStrategy stratOption = (eStrategy)EditorGUILayout.EnumPopup("Active Strategy", m_strategyPlanner.ActiveStrategy); if (stratOption != m_strategyPlanner.ActiveStrategy) { m_strategyPlanner.ActiveStrategy = stratOption; ClearCurrentAndMakeNewPlan(); } DrawWorldState(); DrawPlan(); DrawAgentList(); }