机器人:具有模糊判断
自己动手写聊天机器人,能够回答不同城市的天气、回答感情问题、问的次数过多还会饿死,提问可以模糊提问(包含指定关键词)。问“天气:北京”就回复“今天北京天气很好。”。
static void Main(string[] args) { Console.WriteLine("您好,我是小E机器人.请输入一句话。");//提示用户输入一句话。 int e = 10;//定义一个整型变量。是用来记录机器人的饥饱程度。 while(true)//while 为真一直循环。 { string s = Console.ReadLine();//接收用户输入的字符串。 e--;//自减1,没接收到用户输入一句话,则饥饱程度减一。 string sc="";//定义一个 字符串变量。 if (e > 0)//判断饥饱程度是否大于0. { if (s.Contains("天气"))//判断用户输入的字符串内是否包含“天气”字符。 { sc = Tq(s);//如果包含“天气”则调用Tq函数。 Console.WriteLine("机器人:{0}",sc);//输出Tq 返回的值。 } else if(s.Contains("您"))//判断用户输入的字符串是否包含“您”。 { sc = GQ(s);//如果包含,则调用GQ函数。 Console.WriteLine("机器人:{0}", sc);//输出GQ 返回的值。 } else if (s.StartsWith("88") || s.Contains("再见") || s.EndsWith("886"))//判断用户是否输入包含:“88”或“再见”或“886” { Console.WriteLine("机器人:{0}", "再见!");//如果包含,则执行这句。 return;//退出程序。 } else if (s.Contains("你")&&(s.Contains("名字")||s.Contains("姓名")))//判断用户是否输入包含:“你”或“名字”或“姓名” { Console.WriteLine("机器人:{0}", "我叫:小E!");//如果包含,则执行这句。 } else Console.WriteLine("机器人:{0}", "你说的什么?");//如果不包含以上信息,则执行这句。 } else//如果饥饱程度小于0,则执行以下语句。 { Console.WriteLine("机器人:{0}", "我没力气了,饿死了。喂我点东西吧。");//提示用户。 int wei =Convert.ToInt32(Console.ReadLine());//将用户输入的字符串转变成整型。 if (wei > 0 && wei <= 10)//判断用户输入的是不是大于0,小于或等于10. { e = e + wei;//如果为真,则将用户输入的数。加到e变量中。 Console.WriteLine("机器人:{0}", "我吃饱了。");//提示用户 continue;//退出本次循环。 } Console.WriteLine("机器人:{0}", "每次我只能吃1~10个食物。");//如果为假,则提示。 continue;//退出本次循环。 } } Console.ReadKey();//按任意键结束。 } static string Tq(string s)//带一个字符串变量的函数。 { if (s.Contains("北京"))//用户输入的是否包含“北京” { return "今天北京天气很好。";//如果包含,则返回。 } else { return "其他地方的天气我不知道。";//不包含。则返回。 } } static string GQ(string s)//带一个字符串变量的函数。 { if (s.Contains("女朋友"))//用户输入的是否包含“女朋友” { return "年纪小,不考虑。";//如果包含,则返回。 } else { return "你说的什么?";//不包含。则返回。 } } }
输出结果: