3.C#面向对象基础聊天机器人
基于控制台的简单版的聊天机器人,词库可以自己添加。
聊天机器人1.0版本
源码如下:
using System;
using System.Collections.Generic;
using System.Text; namespace 面向对象聊天机器人1
{
class Program
{
static void Main(string[] args)
{
机器人 r1 = new 机器人();
r1.Name = "小I";
r1.Eat();
r1.SayHello();
while (true)
{
string str = Console.ReadLine();
r1.Speak(str);
}
}
}
class 机器人
{
public string Name { get; set; } private int Fullevel { get; set; }//饥饿的程度自己知道,所以应该设为私有的属性。 public void SayHello()//可以说话
{
Console.WriteLine("\t\t【机器人】你好,我叫{0},很高兴认识你!", Name);
}
public void Eat(int foodCount)
{
if (Fullevel > )
{
return;
}
Fullevel = Fullevel + foodCount;
} public void Speak(String str)
{
if (Fullevel <= )
{
Console.WriteLine("\t\t【机器人】饿死了,别问了,我不说了!");
return;
}
if (str.Contains("姓名") || str.Contains("名字") || str.Contains("谁") || str.Contains("你好"))
{
this.SayHello();//类的方法调用同类的另外一个方法
}
else if (str.Contains("女朋友"))
{
Console.WriteLine("\t\t【机器人】年龄小,不考虑!");
}else if (str.Contains("创造") )
{
Console.WriteLine("\t\t【机器人说】是星云创造的我。"); }else if(str.Contains("逗比"))
{
Console.WriteLine("\t\t【机器人】你才是逗比,你一家人都是逗比!"); }else if (str.Contains("呵呵"))
{
Console.WriteLine("\t\t【机器人】嘻嘻"); }else if (str.Contains("。。。"))
{
Console.WriteLine("\t\t【机器人】。。。。"); }
else if (str.Contains("擦"))
{
Console.WriteLine("\t\t【机器人】你要擦什么?"); }else
{
Console.WriteLine("\t\t【机器人】听不懂!");
}
Fullevel--;
}
}
}
运行截图:


聊天机器人2.0版本,可选择聊天机器人。
源码如下:
using System;
using System.Collections.Generic;
using System.Text; namespace 面向对象聊天机器人2
{
class Program
{
static void Main(string[] args)
{
机器人 r1 = new 机器人();
r1.Name = "小I";
r1.Eat(); 机器人 r2 = new 机器人();
r2.Name = "小J";
r2.Eat();
Console.WriteLine("请选择机器人,1——>小I,2——>小J");
机器人 r;
string str =Console.ReadLine();
if(str =="")
{
r=r1;//r指向r1指向的对象
}
else
{
r=r2;
}
r.SayHello();
while (true)
{
string str1 = Console.ReadLine();
r.Speak(str1);
}
}
}
class 机器人
{
public string Name { get; set; } private int Fullevel { get; set; }//饥饿的程度自己知道,所以应该设为私有的属性。 public void SayHello()//可以说话
{
Console.WriteLine("\t\t【机器人】你好,我叫{0},很高兴认识你!", Name);
}
public void Eat(int foodCount)
{
if (Fullevel > )
{
return;
}
Fullevel = Fullevel + foodCount;
} public void Speak(String str)
{
if (Fullevel <= )
{
Console.WriteLine("\t\t【机器人】饿死了,别问了,我不说了!");
return;
}
if (str.Contains("姓名") || str.Contains("名字") || str.Contains("谁") || str.Contains("你好"))
{
this.SayHello();//类的方法调用同类的另外一个方法
}
else if (str.Contains("女朋友"))
{
Console.WriteLine("\t\t【机器人】年龄小,不考虑!");
}else if (str.Contains("创造") )
{
Console.WriteLine("\t\t【机器人说】是星云创造的我。"); }else if(str.Contains("逗比"))
{
Console.WriteLine("\t\t【机器人】你才是逗比,你一家人都是逗比!"); }else if (str.Contains("呵呵"))
{
Console.WriteLine("\t\t【机器人】嘻嘻"); }else if (str.Contains("。。。"))
{
Console.WriteLine("\t\t【机器人】。。。。"); }
else if (str.Contains("擦"))
{
Console.WriteLine("\t\t【机器人】你要擦什么?"); }else
{
Console.WriteLine("\t\t【机器人】听不懂!");
}
Fullevel--;
}
}
}
运行结果:

3.C#面向对象基础聊天机器人的更多相关文章
- C#面向对象基础01
面向对象不是取代面向过程的类.对象."人"是类,"张三"是人这个类的对象.类是抽象的,对象是具体的.按钮就是类,某个按钮就是对象.对象可以叫做类的实例.类就像i ...
- AI中台——智能聊天机器人平台的架构与应用(分享实录)
内容来源:宜信技术学院第3期技术沙龙-线上直播|AI中台——智能聊天机器人平台 主讲人:宜信科技中心AI中台团队负责人王东 导读:随着“中台”战略的提出,目前宜信中台建设在思想理念及架构设计上都已经取 ...
- 用 AIML 开发人工智能聊天机器人
借助 Python 的 AIML 包,我们很容易实现人工智能聊天机器人.AIML 指的是 Artificial Intelligence Markup Language (人工智能标记语言),它不过是 ...
- 学习笔记TF059:自然语言处理、智能聊天机器人
自然语言处理,语音处理.文本处理.语音识别(speech recognition),让计算机能够"听懂"人类语音,语音的文字信息"提取". 日本富国生命保险公司 ...
- 【自然语言处理篇】--Chatterbot聊天机器人
一.前述 ChatterBot是一个基于机器学习的聊天机器人引擎,构建在python上,主要特点是可以自可以从已有的对话中进行学(jiyi)习(pipei). 二.具体 1.安装 是的,安装超级简单, ...
- Tensorflow搞一个聊天机器人
catalogue . 前言 . 训练语料库 . 数据预处理 . 词汇转向量 . 训练 . 聊天机器人 - 验证效果 0. 前言 不是搞机器学习算法专业的,3个月前开始补了一些神经网络,卷积,神经网络 ...
- 用Go语言实现一个简单的聊天机器人
一.介绍 目的:使用Go语言写一个简单的聊天机器人,复习整合Go语言的语法和基础知识. 软件环境:Go1.9,Goland 2018.1.5. 二.回顾 Go语言基本构成要素:标识符.关键字.字面量. ...
- 计算机网络课设之基于UDP协议的简易聊天机器人
前言:2017年6月份计算机网络的课设任务,在同学的帮助和自学下基本搞懂了,基于UDP协议的基本聊天的实现方法.实现起来很简单,原理也很简单,主要是由于老师必须要求使用C语言来写,所以特别麻烦,而且C ...
- SAP成都研究院飞机哥: SAP C4C中国本地化之微信聊天机器人的集成
今天的文章仍然来自Jerry的老同事,SAP成都研究院的张航(Zhang Harry).关于他的背景介绍,请参考张航之前的文章:SAP成都研究院飞机哥:程序猿和飞机的不解之缘.下面是他的正文. 大家好 ...
随机推荐
- iOS开发系列--Swift语言
概述 Swift是苹果2014年推出的全新的编程语言,它继承了C语言.ObjC的特性,且克服了C语言的兼容性问题.Swift发展过程中不仅保留了ObjC很多语法特性,它也借鉴了多种现代化语言的特点,在 ...
- AutoFac在项目中的应用
技能大全:http://www.cnblogs.com/dunitian/p/4822808.html#skill 完整Demo:https://github.com/dunitian/LoTCode ...
- 在Linux系统下运行微信Web开发者工具
微信Web开发者工具只有window版本和mac版本,如果想要在Linux系统下运行微信Web开发者工具,需要花费很大周折. 注:带 * 的步骤或文件为不确定是否管用的步骤或文件.本人系统为Linux ...
- SAP CRM 用户界面对象类型和设计对象
在CRM中的用户界面对象类型的帮助下,我们可以做这些工作: 进行不同的视图配置 创建动态导航 从设计层控制字段标签.值帮助 控制BOL对象的属性的可视性 从导航栏访问自定义组件 一个用户界面对象类型之 ...
- 【干货分享】流程DEMO-固定资产转移流程
流程名: 固定资产转移 业务描述: 固定资产从某员工转移至另一员工,转出人与转入人必须不同 流程相关文件: 流程包.xml 流程说明: 直接导入流程包文件,即可使用本流程 表单: 流程: ...
- Android 添加ActionBar Buttons
一.在res/menu文件夹下创建Xml文件 跟标签为menu,设置item <?xml version="1.0" encoding="utf-8"?& ...
- javaMail
JavaMail概述: JavaMail是由Sun定义的一套收发电子邮件的API,不同的厂商可以提供自己的实现类.但它并没有包含在JDK中,而是作为JavaEE的一部分. javaMai ...
- [每日Linux]Linux下xsell和xftp的使用
实验缘由: 1.xsell在Linux下的作用就是远程登录的一个界面,也就是实现访问在Windows下访问Linux服务器的功能.之前在数据挖掘实验中因为自己电脑的内存不够,曾经使用过实验室的服务器跑 ...
- Backbone源码解析(六):观察者模式应用
卤煮在大概一年前写过backbone的源码分析,里面讲的是对一些backbone框架的方法的讲解.这几天重新看了几遍backbone的源码,才发现之前对于它的理解不够深入,只关注了它的一些部分的细节和 ...
- 正确地编写Objective-C中的便捷方法
在Objective-C中,如果某个类方法的返回类型就是这个类的实例(例如NSString类中的stringWithFormat:),就可以将这种类方法称为便捷方法(Convenience Metho ...