基于控制台的简单版的聊天机器人,词库可以自己添加。

聊天机器人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#面向对象基础聊天机器人的更多相关文章

  1. C#面向对象基础01

    面向对象不是取代面向过程的类.对象."人"是类,"张三"是人这个类的对象.类是抽象的,对象是具体的.按钮就是类,某个按钮就是对象.对象可以叫做类的实例.类就像i ...

  2. AI中台——智能聊天机器人平台的架构与应用(分享实录)

    内容来源:宜信技术学院第3期技术沙龙-线上直播|AI中台——智能聊天机器人平台 主讲人:宜信科技中心AI中台团队负责人王东 导读:随着“中台”战略的提出,目前宜信中台建设在思想理念及架构设计上都已经取 ...

  3. 用 AIML 开发人工智能聊天机器人

    借助 Python 的 AIML 包,我们很容易实现人工智能聊天机器人.AIML 指的是 Artificial Intelligence Markup Language (人工智能标记语言),它不过是 ...

  4. 学习笔记TF059:自然语言处理、智能聊天机器人

    自然语言处理,语音处理.文本处理.语音识别(speech recognition),让计算机能够"听懂"人类语音,语音的文字信息"提取". 日本富国生命保险公司 ...

  5. 【自然语言处理篇】--Chatterbot聊天机器人

    一.前述 ChatterBot是一个基于机器学习的聊天机器人引擎,构建在python上,主要特点是可以自可以从已有的对话中进行学(jiyi)习(pipei). 二.具体 1.安装 是的,安装超级简单, ...

  6. Tensorflow搞一个聊天机器人

    catalogue . 前言 . 训练语料库 . 数据预处理 . 词汇转向量 . 训练 . 聊天机器人 - 验证效果 0. 前言 不是搞机器学习算法专业的,3个月前开始补了一些神经网络,卷积,神经网络 ...

  7. 用Go语言实现一个简单的聊天机器人

    一.介绍 目的:使用Go语言写一个简单的聊天机器人,复习整合Go语言的语法和基础知识. 软件环境:Go1.9,Goland 2018.1.5. 二.回顾 Go语言基本构成要素:标识符.关键字.字面量. ...

  8. 计算机网络课设之基于UDP协议的简易聊天机器人

    前言:2017年6月份计算机网络的课设任务,在同学的帮助和自学下基本搞懂了,基于UDP协议的基本聊天的实现方法.实现起来很简单,原理也很简单,主要是由于老师必须要求使用C语言来写,所以特别麻烦,而且C ...

  9. SAP成都研究院飞机哥: SAP C4C中国本地化之微信聊天机器人的集成

    今天的文章仍然来自Jerry的老同事,SAP成都研究院的张航(Zhang Harry).关于他的背景介绍,请参考张航之前的文章:SAP成都研究院飞机哥:程序猿和飞机的不解之缘.下面是他的正文. 大家好 ...

随机推荐

  1. LeetCode-3LongestSubstringWithoutRepeatingCharacters(C#)

    # 题目 3. Longest Substring Without Repeating Characters Given a string, find the length of the longes ...

  2. .net erp(办公oa)开发平台架构概要说明之表单设计器

    背景:搭建一个适合公司erp业务的开发平台.   架构概要图: 表单设计开发部署示例图    表单设计开发部署示例说明1)每个开发人员可以自己部署表单设计至本地一份(当然也可以共用一套开发环境,但是如 ...

  3. dagger2系列之Scope

    Dagger的Scope注解代表的是作用域,通过实现自定义@Scope注解,标记当前生成对象的使用范围,标识一个类型的注射器只实例化一次,在同一个作用域内,只会生成一个实例, 然后在此作用域内共用一个 ...

  4. AFNetworking 3.0 源码解读(十)之 UIActivityIndicatorView/UIRefreshControl/UIImageView + AFNetworking

    我们应该看到过很多类似这样的例子:某个控件拥有加载网络图片的能力.但这究竟是怎么做到的呢?看完这篇文章就明白了. 前言 这篇我们会介绍 AFNetworking 中的3个UIKit中的分类.UIAct ...

  5. input标签中button在iPhone中圆角的问题

    1.问题 使用H5编写微信页面时,使用<input type="button"/>时,在Android手机中显示正常,但是在iPhone手机中则显示不正常,显示为圆角样 ...

  6. java中易错点(二)

    java,exe是java虚拟机 javadoc.exe用来制作java文档 jdb.exe是java的调试器 javaprof,exe是剖析工具 解析一: sleep是线程类(Thread)的方法, ...

  7. 如何查看w3p.exe 和IIS 应用程序池的关系

    图形界面方式 命令行方式 如果找不到 appcmd Appcmd.exe exists at the location %systemroot%\system32\inetsrv\. You eith ...

  8. 创建maven项目(cmd 命令)

    2016五月 22 原 创建maven项目(cmd 命令) 分类:maven (994) (0) 1.普通方式创建 1)进入cmd窗口执行 mvn archetype:generate 2) 光标停止 ...

  9. 判断一个对象是jQuery对象还是DOM对象

    今天调试一段代码的时候,看到其中一个变量,想知道它到底是jquery对象还是dom对象. 虽然直接console出这个对象,看它的内部可以判断出来.但是我想有没有什么更方便的方法呢. 后来我想到了一个 ...

  10. Angular2学习笔记——路由器模型(Router)

    Angular2以组件化的视角来看待web应用,使用Angular2开发的web应用,就是一棵组件树.组件大致分为两类:一类是如list.table这种通放之四海而皆准的通用组件,一类是专为业务开发的 ...