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成都研究院飞机哥:程序猿和飞机的不解之缘.下面是他的正文. 大家好 ...
随机推荐
- JavaScript function函数种类
本篇主要介绍普通函数.匿名函数.闭包函数 目录 1. 普通函数:介绍普通函数的特性:同名覆盖.arguments对象.默认返回值等. 2. 匿名函数:介绍匿名函数的特性:变量匿名函数.无名称匿名函数. ...
- Android探索之AIDL实现进程间通信
前言: 前面总结了程序间共享数据,可以使用ContentProvider也可以使用SharedPreference,那么进程间怎么共享内存呢?Android系统中的进程之间不能共享内存,因此,需要提供 ...
- 从display:run-in;中学习新技能
有时我们想在一行内显示一个标题,以及一段内容,虽然看起来比较简单,但是为了语义化用dl比较合适,但是它默认是block元素,改成inline?那么有多段呢?不就都跑上来了?用float?那问题也挺多. ...
- MongoDB集群配置
本文演示:(一个主服务器,一个备份服务器,三个仲裁服务器) 官方推荐副本集的成员数量为奇数,最多12个副本集节点,最多7个节点参与选举. 本文演示基于本机,用端口区分服务(每个服务器下新建db文件夹用 ...
- Postman - 功能强大的 API 接口请求调试和管理工具
Postman 是一款功能强大的的 Chrome 应用,可以便捷的调试接口.前端开发人员在开发或者调试 Web 程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的 Fi ...
- Android中实现APP文本内容的分享发送与接收方法简述
谨记(指定选择器Intent.createChooser()) 开始今天的内容前,先闲聊一下: (1)突然有一天头脑风暴,对很多问题有了新的看法和见解,迫不及待的想要分享给大家,文档已经写好了,我需要 ...
- 对Maven、gradle、svn、spring 3.0 fragment、git的想法
1.Maven Maven可以构建项目,采用pom方式配置主项目和其他需要引用的项目.同时可结合spring3.0的新特性web fragment. 从现实出发,特别是对于管理不到位,程序员整体素质 ...
- Linux课堂笔记(一)
一.Linux应用领域及版本介绍. 1.服务器.嵌入式.桌面应用等. (1)在服务器领域中,需要安全和稳定,特别是越老的内核版本越安全.越稳定. (2)Linux主要分内核版和发行版. 内核版本2.6 ...
- 打开程序总是会提示“Enter password to unlock your login keyring” ,如何成功关掉?
p { margin-bottom: 0.1in; line-height: 120% } 一.一开始我是按照网友所说的 : rm -f ~/.gnome2/keyrings/login.keyrin ...
- C#与C++的发展历程第二 - C#4.0再接再厉
系列文章目录 1. C#与C++的发展历程第一 - 由C#3.0起 2. C#与C++的发展历程第二 - C#4.0再接再厉 开始本系列的第二篇,这篇文章中将介绍C#4.0中一些变化,如C++有类似功 ...