Beispiel #1
0
        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);
            }
        }
Beispiel #3
0
        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()));
            }
        }
Beispiel #4
0
    //-----------------------------------------------------------------------------------------------
    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();
    }