public static void PrintBotMessage(ChatBot bot, String message) { Console.ForegroundColor = ConsoleColor.DarkBlue; Console.Write("{0}: ", bot.Name); Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine(message); }
public static void StartConversation(ChatBot bot) { Console.Clear(); Mode mode = Mode.Undefined; String responseMessage; ChatBot.PrintBotMessage(bot, bot.SayHello()); while (mode != Mode.Goodbye) { mode = ChatBot.AnalyzeInput(bot, ChatBot.ReadMessage()); switch (mode) { case Mode.Hello: responseMessage = bot.SayHello(); break; case Mode.Goodbye: responseMessage = bot.SayGoodby(); break; case Mode.HowAreYou: responseMessage = bot.SayHowAreYou(); break; default: responseMessage = bot.SayDontGot(); break; } ChatBot.PrintBotMessage(bot, responseMessage); if (mode == Mode.Goodbye) // Wait for a key press in case of goodbye Console.ReadKey(); } }
public static Mode AnalyzeInput(ChatBot bot, String message) { Mode mode = Mode.Undefined; int intersectionCnt = 0; int intersectionCntTmp; String response = bot.SayDontGot(); HashSet<String> messageSet = ChatBot.GetWordsSet(message); Dictionary<Mode, HashSet<String>> dictionary = bot.GetDictionary(); foreach(Mode m in dictionary.Keys) { intersectionCntTmp = dictionary[m].Intersect(messageSet).Count(); if (intersectionCntTmp > intersectionCnt) { intersectionCnt = intersectionCntTmp; mode = m; } } return mode; }