当前位置:首页 > C#学习 > 正文内容

机器人:具有模糊判断

小道6年前 (2018-08-20)C#学习3307

自己动手写聊天机器人,能够回答不同城市的天气、回答感情问题、问的次数过多还会饿死,提问可以模糊提问(包含指定关键词)。问“天气:北京”就回复“今天北京天气很好。”。

        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 "你说的什么?";//不包含。则返回。
            }
        }
    }

输出结果:

image.png

扫描二维码推送至手机访问。

版权声明:本文由小道发布,如需转载请注明出处。

本文链接:https://daobk.com/post/32.html

分享给朋友:

“机器人:具有模糊判断” 的相关文章

for语句:用 for实现计算1到100之间所有整数的和。

for语句:用 for实现计算1到100之间所有整数的和。

for语句:用 for实现计算1到100之间所有整数的和。            int i;//定义一个整型变量,未赋值    &nbs...

枚举enum

枚举enum

确定数量、确定值的几个取值:东西南北、男女、上中下。和用字符串比起来,用枚举的好处就是限定了变量的取值范围,程序处理起来更方便。namespace 枚举//命名空间 {     enum xb { 男, 女...

函数:给我一个字符串,然后字符串使用我指定的分隔符来进行分割

函数:给我一个字符串,然后字符串使用我指定的分隔符来进行分割

函数就是将一堆代码进行重用的一种机制。函数就是一段代码,这段代码可能有输入的值(参数),可能会返回值。一个函数就像一个专门做这件事的人,我们调用它来做一些事情,它可能需要我们提供一些数据给它,它执行完成后可能会有一些执行结果给我们。要求的数据就叫参数,返回的执行结果就是返回值。有了函数写代码就像拼积...

String类常用函数

String类常用函数

String类常用函数ToLower():得到字符串的小写形式。注意字符串是不可变的,所以这些函数都不会直接改变字符串的内容,而是把修改后的字符串的值通过函数返回值的形式返回。ToUpper():得到字符串的大写形式; Trim()去掉字符串两端的空白。s1.Equals(s2, StringCom...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。