想做一个机器人控制系统舞台剧控制系统,该用什么语言比较好

强烈呼吁机器人舞台剧《小王子》停演!
尊敬的中国演出行业协会
并全国人民代表大会常务委员会:
我居然看了一场机器人主演的话剧
我以为几十年的生存经验已经锻炼了我的接受能力
锻炼了我的抗击打能力
锻炼了我吃了屎别嚼的能力
没想到我的三观还是又一次被刷新了
作为一名一直把舞台当作圣地的演员
我度过了人生中最痛苦的80分钟
这个戏是对舞台表演艺术的蔑视
我觉得我已经到了非发表这个声明不可的地步。
舞台表演艺术是一种最汇聚人气的表演形式,观众走进剧场那一刻,演员和观众就建立了一种契约,双方彼此信任,舞台的灯光温暖了演员的身体,演员根据观众的反应,调整自己的每一次呼吸和节奏,而这种契约,只能在人与人之间建立。
舞台也是个很神圣很有灵气的地方,每次演出之前演员们都会拜台,并不是我们要搞什么多余的形式或者封建迷信,因为我们靠舞台为生,我们在用自己的形式传达对舞台的尊重和敬畏。
但是今天,一台机器横亘中间,彻底打破了剧场中人与人之间微妙的交流与互动,这与舞台表演艺术发展的初衷完全相悖。
为了维护舞台的纯洁,为了戏剧表演艺术的未来,也为了我们这些以舞台演出为生的演员的前途,我们强烈呼吁,由中国演出行业协会出面,并恳请全国人大立法,禁止机器人作为演员参与舞台剧的演出。
当今世界,智能机器人技术突飞猛进。2016年央视春晚,智能机器人表演群舞。今年上半年,美国谷歌公司的机器人与韩国围棋棋手李世石对弈,更是将人工智能推向了风口浪尖。有人称今年为机器人元年。这是人类科学技术的进步表现,我们欣喜且期待。
但是,最近在北京演出市场,出现了一部以机器人为主角的舞台剧《小王子》。这样的情况让我们非常震惊!什么是舞台演出?区别于影视艺术,舞台演出的独特魅力就在于真人表演。观众坐在台下,真人演员用自己的一颦一笑,让观众哭,让观众笑,走进观众心里。但是,如果演员不再是真人,而仅仅是一台或者几台机器人,那么,舞台演出还是舞台演出吗?戏剧还是戏剧吗?观众买了票,到剧院里,看到的仅仅是无生命的“假人”在那里按照程序唱、念、做、打,那和在家里看电视、在电影院看电影有区别?!
也许,有人会认为,刚刚出现的世界首部机器人舞台剧《小王子》,舞台上只有一个机器人,其他多名角色还是真人演员扮演,不必大惊小怪。但是,我们认为,机器人进入舞台剧行业,虽然仅仅是个苗头,但是所反映的问题却必须引起我们警惕。虽然现在只是一个机器人演员,但是就当今科技发展速度,很快就会出现全舞台都是机器人演员的演出。
如果有那么一天,无数人为之付出青春、甚至付出一生的舞台,这块让无数人疯狂、让无数人迷恋的方寸之土,戏剧人最后的精神乐园,将失去意义。戏剧将不复存在;因为有了机器人演员的替代,以舞台剧为生的演员,也将不复存在。也许,我们的后代,只能在“非物质文化展演”的时候,才会知道什么叫戏剧。
高科技加速发展,让我们感到,人类多么需要舞台艺术。互联网、移动互联网,O2O,VR,让人们足不出户就能够得到一切,感知一切。可是,这真的很好吗?当各种高科技试图将人类拉进虚拟世界的时候,舞台艺术起码提供了另一种关照现实的可能性。自古以来,去剧院看场戏,看场真人演出的戏剧,本来就不单纯是对看一个悲欢离合的故事,而是去出席一个社区活动,是去进行一个仪式。品味同一部戏里同一个演员在不同场次的发挥,更是人类内心生活里不可缺少的乐趣。人类失去舞台,世界将会怎样?
基于以上想法,我写出了此篇呼吁。
强烈呼吁全球首部机器人舞台剧《小王子》停演!
强烈呼吁全球首部机器人舞台剧《小王子》停演!
强烈呼吁全球首部机器人舞台剧《小王子》停演!
····························
请该剧的出品方尊重演员、尊重自己、也尊重自己所处的行业!
呼吁由中国演出行业协会出面,并恳请全国人大立法,禁止机器人演员参与舞台剧演出。不要让貌似先进的机器人,毁了纯粹的舞台净土,毁了高贵的戏剧艺术,也毁了我们这些演员此生所追求的艺术。让机器人演舞台剧,不靠谱,不人道,不负责任。
此呼吁我将先在网络上发布,然后寻求更多的演员同行和其他戏剧业内人士的支持,获得相当数量的联署后,将打印成纸质文件,郑重提交中国演出行业协会,并邮寄给全国人大常委会。我说到做到!
& & & & & & & & &
& & & & & & & & &
& & & & & & & & &
& & & & & & & & &
& & & & & & 一个热爱戏剧艺术的演员
& & & & & & & & &
& & & & & & & & &
& & & & & & & & &
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。作为一个机器人专业的研究生,究竟应该做些什么? - 知乎1220被浏览83882分享邀请回答12156 条评论分享收藏感谢收起151 条评论分享收藏感谢收起查看更多回答3 个回答被折叠()想做机器人,有什么好的发展方向?
我的图书馆
想做机器人,有什么好的发展方向?
【冷哲的回答(36票)】:现在比较有前途的方向不外乎:工业机器人、无人飞行器(UAV)、无人驾驶汽车(UGV)、医疗机器人。工业机器人现在需求量越来越大,是个不错的行业,但是技术门槛比较低,目前主要做研究的都是公司了,大学里几乎不做了。UAV主要是政府在投钱,军队用。UGV是政府和一些有前瞻性的公司,就目前的技术情况,恐怕十年内无法大规模商业化。医疗机器人是针对目前一些手术上的问题在做,目前有一定进展(达芬奇系统),商业前景很好,但是短期内恐怕推广不开。其他方向,比如家政机器人,有Willow Garage在探路,但是前景很不乐观。日本做类人步行机器人做的很欢,但是毫无应用前景。Boston Dynamics的四足步行机器人做得不错,但是应用范围过于狭窄,只有军队可能有兴趣采购。Sarcos雷神的外骨骼做得不错,有一定商业化前景,但是自重太大,对能源要求很高,成本也很高,。做机器人,主要有三个层面。最底层做机械设计,主要是电机、传感器、人工肌肉、结构设计等等。中层做控制设计,主要是传感器滤波和控制算法。上层做感知,主要是根据传感器数据进行更高阶的信息融合,作更复杂的分析,比如说机器视觉、SLAM之类。在机器人领域目前没看出来有什么大用处。甚至连机器学习都用的非常少。三个层面都不错。不过目前发展最快的是后两个层面。中层现在在工业界发展比较快。上层主要还是在学术界,目前还没有多少可供商业化的东西。下层现在很缓慢,主要是没有找到非常好的材料。【贾子枫的回答(19票)】:这是一个可以让我和你畅谈几天几夜的问题。我们仅从大方向分析未来十年到二十年的发展。(平常专业术语是用英文的,中文术语若不准确请谅解)机器人学发展的大方向,也可以说是历史发展的几个重要里程,以其萌芽以及成熟以及分为四个阶段(这个阶段是我三年前自己划分的,不是权威的划分):工业机器人阶段,初级阶段,提高精度,研究从开环到闭环。主要研究运动学,动力学,轨迹规划。专业入门可以参阅JJ Craig的著作Introduction to Robotics。高端研究参考控制领域以oussama khatib等人的文章。机器人代表从早期Puma,Kuka,到最新的Rethink的Baxter。这里也包括遥操作系统,比如医用的达尔文系统。军事以及商用机器人阶段,中级阶段,也是现在的主流阶段,最可能商业化的方向。主要研究移动性能,不过对安全性考虑较少。代表机器人很多,大量的UAV (近几年Quadrotor,就是四个螺旋桨的那种在研究领域很火),UGV (Google Car),包括Boston Dynamics(被收购了,我这里名字还是用这个)的Big Dog,Petman,wildcat,以及去年底Darpa challenge的各种人形机器人。家用机器人阶段,高级阶段。其实Asimo是朝这个方向去的,还有关掉的Willow Garage的PR2(可以找到简化版的Unbounded Robotics的UBR-1),Suitable Tech的Beam, 我们也算上娱乐型的Sony的Aibo和Qrio (早就关掉了)。可见家用机器人还有点为时过早,因为Human Robot Interaction现在都还处在理论阶段而已,家用机器人相当于把一个不安全的军事机器人放在家里!成功的案例应该只有iRobot领衔的机器人吸尘器,不是因为他智能,只不过他扫个地,安全性很容易保证。如果做研究,这个方向未来还可以发很多文章。通用机器人阶段,未来阶段,主要研究机器人的认知理解能力。已经有小部分研究开始做了,包括IBM的Blue Brain Project,欧盟Human Brain Project。好吧把这个归为机器人。。勉强了。机器人本来就是强交叉学科,智能必然是根本。所以,最好的工业方向,包括这几年的发展以及未来十年到二十年的展望,必然还是研究军用及商用机器人,重点还是移动性能,同时包括为其服务的SLAM(求翻译。。)和导航系统。主要衍生方向是机器人视觉,传感器,效应器(Actuator)。机器人安全性能的发展极有可能对工业机器人及家用机器人产生变革式的推动。衍生方向主要是传感器,柔性控制,效应器。最好的研究方向,个人觉得是人机交互,机器学习,以及和神经,认知交叉的方向。当然不得不说的就是机器人现在还很少(个人了解是非常少)和移动终端,大数据和云计算等主流IT交叉。这在未来十年移动机器人技术成熟后一定会是一个强交叉领域。机器人的发展倚赖多个学科的共同发展。但是“机器人学”的发展是相对比较独立的。【王贰的回答(9票)】:先出国再说。【卢茂军的回答(1票)】:哪方面的?机器人范畴太大了;未来的十年内执行精细加工工作的机器人应该会有较大的空间。你可以看一看目前有什么精密工作是程序化往复动作,如果你是学习材料的,建议你在电子肌肉材料方面发展,电机动力机器人应该会在非大型工业应用中淘汰【小心假设的回答(2票)】:最近看了一篇文章,《环球科学》2014年第2期,机器人会改变世界吗?是德国一个有名的机器人专家写的。写得很好,介绍并展望了几个机器人研究方向。完全内行,又通俗易懂。顺便插一句,机器人不跟纯CS的研究一样,机器人Digital与Analog的部分都很重要。而一旦涉及Analog的,德国、日本人乃至法国在机械、工艺、精密控制等的优势就会展现出来。而美国等(特别是印度)优势主要在于Digital的部分。当然,美国也有波音、Boston Dynamics这样的Digital与Analog都顶尖的公司。印度则几乎只有Digital厉害。说这些的目的,是想说明,如果纯Digital领域,中国几乎只需要盯着美国硅谷就行的话;在机器人领域,则不再适用了。我想,Google收购了这么多机器人公司,原因也很可能与之有关。毕竟Google几乎是纯Digital的,但无人驾驶车中很多重要环节都是Analog有密切关系。当然,以上只是自己的拙见。欢迎指正。【知乎用户的回答(1票)】:可以试试医疗机器人这个方向,相对来说前景还是很不错的【Filestorm的回答(1票)】:只说软件,硬件方面我不懂。。。机器人现在比较work的就是computer vision和reinforcement learning这两块儿。推荐阅读Russell & Norvig的那本Artificial Intelligence: A modern approach 第三版(第二版内容太老,不推荐)【廖雪峰的回答(1票)】:斯坦福大学在线开放课程AI即将开课,推荐教材就是Artificial Intelligence: A modern approach赶快注册吧:【happyli的回答(1票)】:做个机器人帮我买点东西,或者买东西的时候帮忙提点物品。会安全走回家就不错了。【WangNing的回答(0票)】:机器人的方向可以分布在机械、电子与计算机等几个大的领域。1. 机械领域主要研究的是机器人动力学及运动适应性。以及生产线的自动化如焊接机器人的设计等问题。2. 电子领域主要关注的是机器人的控制算法。 但是很多控制理论现在已经不太流行了,比较超前的研究是基于网络的群组机器人控制(Swarm Control)。可以参考Georgia Tech的Prof. Magnus Egerstedt的研究。3. 计算机科学理论研究的主要是人工智能在机器人上的应用。这里面涉及的方面很多: 机器学习(Machine Learning), 计算机视觉(Computer Vision), 自然语言处理(Natural Language Processing), AI Logic等等都是其主要的方面。具体前端的研究可以参考UC Berkeley教授Prof. Stuart Russell和Stanford教授Prof. Sebastian Thrun。具体做哪一块可以根据你之前的教育经历和研究兴趣来确定。目前的主流研究更多在计算机科学领域下。【YingHu的回答(0票)】:可以学习计算机,电子,机械,物理和数学。一个研发机器人的团队里面,负责做硬件的是精通电子和机械的,做软件的就是计算机编程了。物理和数学专家的作用不是必须的,但是他们的专业知识可以使产品更完善。【吴崇的回答(0票)】:我这需要能扫鸟粪的机器人。庭院散养,估计也没啥技术难点,就是没人做,感兴趣可以试试。做散养的需要的应该蛮多,请人打扫也一年也得不少工钱呢。【知乎用户的回答(0票)】:如果想做研究,比如模式识别、机器学习、数据挖掘;说到应用,最好结合互联网,比如对话机器人之类东西,有商业价值。
馆藏&67796
TA的推荐TA的最新馆藏
喜欢该文的人也喜欢欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 14736 人关注过本帖
标题:来,你也可以用 C 语言写一个聊天机器人
等 级:论坛游侠
帖 子:64
专家分:157
&&问题点数:0&&回复次数:13&&&
来,你也可以用 C 语言写一个聊天机器人
你是不是一直在面对着枯燥的 C 语言特性、摸索着前人写过的各种算法,不是因为自己的兴趣,而是依靠自身的毅力,学得很苦吧。
好吧,我们找一个好玩一点的东西,一起来写个聊天机器人吧。我知道只是个简单的例子,看完也不一定真有人去写一个聊天机器人,但如果你真想去写的话,这里的内容,可以帮助你实现你的目标。
噢,可以直接去看原文:
/articles/36106/chatbot-tutorial
聊天机器人就是让你能够对他做出动作(姿势或语言),然后他会根据你的行为对你做出反应的程序。当你为它输入自然语言中的一些问题的话,他也可以给你一些看起来有意义的同一语言的回答。
下面是一个非常基本的聊天机器人的代码,很简单的几行:
// Program Name: chatterbot1
// Description: this is a very basic example of a chatterbot program
// 描述:这是一个聊天机器人程序一个非常基本的例子
// Author: Gonzales Cenelia
#include &iostream&
#include &string&
#include &ctime&
int main()
&&& std::string Response[] = {
&&&&&&&&&我听到了!&,
&&&&&&&&&你是在和我说话。&,
&&&&&&&&&继续说,我在听。&,
&&&&&&&&&哈哈,真是非常有趣的谈话。&,
&&&&&&&&&后来呢?&
&&& srand((unsigned) time(NULL));
&&& std::string sInput = &&;
&&& std::string sResponse = &&;
&&& while(1) {
&&&&&&&&std::cout && &&&;
&&&&&&&&std::getline(std::cin, sInput);
&&&&&&&&int nSelection = rand() % 5;
&&&&&&&&sResponse = Response[nSelection];
&&&&&&&&std::cout && sResponse && std::
&&& return 0;
很简单吧?但要做到适当的响应,它可能是很难写的一个程序。1951,图灵提出了一个测试,现在被称为图灵测试。在这项测试中,测试的双方,一方是计算机程序,另一方是一个真正的人类,法官用来判断谁是真正的人。
聊天机器人一般被认为属于弱人工智能领域,但这并不意味着聊天机器人就没有潜力。由于它相当的简单,正好方便大多数爱好者去尝试实现更智能的聊天机器人,所以说,它会是是一个伟大开始的地方。
现在,让我们回到我们以前的程序,前面那个代码存在哪些问题?
嗯,是的。我们可以清楚地看到,这个程序是不是真的想理解用户所说的,相反,他只是随机选择一个已经存在的句子,响应每次用户在键盘上的输入。我们还注意到,程序经常重复自己。这其中的一个原因是由于内含的句子数据库非常小(只有5句),另一个原因是我们还没有实现任何机制来控制这个不太受欢迎的行为。
那,我们该如何改进它?很简单,我们需要引入关键词匹配。
关键词只是一个句子(不一定是完整的)或一个字,程序可以从用户的输入里识别出来,然后让自己的回答对应它。让我们继续改进刚才那个聊天机器人,现在我们称其为 chatterbot2。
// Program Name: chatterbot2
// Description: this is an improved version
// of the previous chatterbot program &chatterbot1&
// this one will try a little bit more to understand what the user is trying to say
// 描述:这是一个改进版,相比于前面的聊天机器人程序,这次将尝试一点点更多地理解用户说什么
// Author: Gonzales Cenelia
#pragma warning(disable: 4786)
#include &iostream&
#include &string&
#include &vector&
#include &ctime&
const int MAX_RESP = 3;
typedef std::vector&std::string&
vstring find_match(std::string input);
void copy(char *array[], vstring &v);
typedef struct {
&&& char *
&&& char *responses[MAX_RESP];
record KnowledgeBase[] = {
&&& {&WHAT IS YOUR NAME&,
&&& {&嗯,我的名字叫瞎聊。&,
&&&&&&你可以叫我公主...,是啊,我是大小姐啊。&,
&&&&&&为什么你想知道我的名字?下一步是要交换QQ号吗?&}
&&& {&HI&,
&&& {&哈哈,好啊!&,
&&&&&&你是谁?&,
&&&&&&噢,你好!&}
&&& {&HOW ARE YOU&,
&&& {&我干得不坏!&,
&&& &你干得怎么样?&,
&&& &为什么你会想知道我是怎么做到的?&}
&&& {&WHO ARE YOU&,
&&& {&我尼玛就是个程序啊。&,
&&&&&&表说,我知道你知道我是谁。&,
&&&&&&为什么还问?&}
&&& {&ARE YOU INTELLIGENT&,
&&& {&是的,当然是的。&,
&&&&&&你是怎么想的?&,
&&&&&&哈哈,事实上我确实很聪明。&}
&&& {&ARE YOU REAL&,
&&& {&这对你真的是个问题吗?&,
&&&&&&啥意思啊?你?&,
&&&&&&我尽量让我看起来像个真正的人类。&}
size_t nKnowledgeBaseSize = sizeof(KnowledgeBase)/sizeof(KnowledgeBase[0]);
int main() {
&&& srand((unsigned) time(NULL));
&&& std::string sInput = &&;
&&& std::string sResponse = &&;
&&& while(1) {
&&&&&&&&std::cout && &&&;
&&&&&&&&std::getline(std::cin, sInput);
&&&&&&&&vstring responses = find_match(sInput);
&&&&&&&&if(sInput == &BYE&) {
&&&&&&&&&&&&std::cout && &和你聊天太愉快了,下次再来!& && std::&&
&&&&&&&&&&&&
&&&&&&&&else if(responses.size() == 0)&&{
&&&&&&&&&&&&std::cout && &我,我,我不确定我是否能理解你说的是什么 ...& && std::
&&&&&&&&else {
&&&&&&&&&&&&int nSelection = rand()&&% MAX_RESP;
&&&&&&&&&&&&sResponse =&&&responses[nSelection]; std::cout && sResponse && std::
&&& return 0;
// make a&&search for the&&user's input
// inside the database of the program
vstring find_match(std::string&&input) {
&&& for(int i = 0; i & nKnowledgeBaseS&&++i) {&&
&&&&&&&&if(std::string(KnowledgeBase[i].input) == input) {
&&&&&&&&&&&&copy(KnowledgeBase[i].responses, result);
&&&&&&&&&&&&
void copy(char&&*array[], vstring &v) {
&&& for(int i = 0;&&i & MAX_RESP; ++i) {
&&&&&&&&v.push_back(array[i]);
现在,程序有了点进步了,它可以尽可能地选择一些接近的句子来做出反应。你可以尝试输入:
WHAT IS YOUR NAME, HOW ARE YOU, ARE YOU INTELLIGENT ... 等语句来测试。
搜索更多相关主题的帖子:
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
吐槽:你这明显是C++
来 自:宜昌
等 级:职业侠客
帖 子:215
专家分:338
你醒了?快起来敲代码!!
等 级:论坛游侠
帖 子:66
专家分:194
自己写过程序解闷还是可以的,宅男们
来 自:重庆邮电大学
等 级:论坛游民
帖 子:173
专家分:30
显然这是c plus plus
C语言好难啊~
等 级:论坛游侠
帖 子:64
专家分:157
&&各位大神,好专业啊,真是惭愧死我了。 得改,一定要改改,C 版绝不用带尾巴的代码。
允许我用代码框简单改写成 C 代码,当然,我努力要写得看起来比 C++ 更加简单,最起码也不能比原始 C++ 更复杂,C 是优秀语言嘛&&
全部代码包括了上面的二个例子代码:
程序代码:
#include &stdlib.h&
#include &stdio.h&
#include &time.h&
#include &string.h&
&&& 描述:这是一个聊天机器人程序一个非常基本的例子 chatterbot1
void chatterbot1()
&&& char* Response[] = {
&&&&&&&&&我听到了!&,
&&&&&&&&&你是在和我说话。&,
&&&&&&&&&继续说,我在听。&,
&&&&&&&&&哈哈,真是非常有趣的谈话。&,
&&&&&&&&&后来呢?&&&&
&&& srand((unsigned) time(NULL));
&&& char sInput[<font color=#] = {<font color=#};
&&& char* sResponse = NULL;
&&& while(<font color=#) {
&&&&&&&&printf(&&&);
&&&&&&&&scanf(&<font color=#s&, &sInput);
&&&&&&&&fflush(stdin);
&&&&&&&&if(sInput[<font color=#] == <font color=#x71 || sInput[<font color=#] == <font color=#x51 ){
&&&&&&&&&&&&printf(&和你聊天真的很愉快, 下次再见。\n&);
&&&&&&&&&&&&_sleep(<font color=#0);
&&&&&&&&&&&&break;
&&&&&&&&int nSelection = rand() % <font color=#;
&&&&&&&&sResponse = Response[nSelection];
&&&&&&&&printf(&%s\n&, sResponse);
&&& 描述:这是一个改进版聊天机器人程序 chatterbot2
const int MAX_RESP = <font color=#;
typedef struct {
&&& char *
&&& char *responses[MAX_RESP];
record KnowledgeBase[] = {
&&& {&WHAT IS YOUR NAME&,
&&& {&嗯,我的名字叫瞎聊。&,
&&&&&&你可以叫我公主...,是啊,我是大小姐啊。&,
&&&&&&为什么你想知道我的名字?下一步是要交换QQ号吗?&}
&&& {&HI&,
&&& {&哈哈,好啊!&,
&&&&&&你是谁?&,
&&&&&&噢,你好!&}
&&& {&HOW ARE YOU&,
&&& {&我干得不坏!&,
&&& &你干得怎么样?&,
&&& &为什么你会想知道我是怎么做到的?&}
&&& {&WHO ARE YOU&,
&&& {&我尼玛就是个程序啊。&,
&&&&&&表说,我知道你知道我是谁。&,
&&&&&&为什么还问?&}
&&& {&ARE YOU INTELLIGENT&,
&&& {&是的,当然是的。&,
&&&&&&你是怎么想的?&,
&&&&&&哈哈,事实上我确实很聪明。&}
&&& {&ARE YOU REAL&,
&&& {&这对你真的是个问题吗?&,
&&&&&&啥意思啊?你?&,
&&&&&&我尽量让我看起来像个真正的人类。&}
size_t nKnowledgeBaseSize = sizeof(KnowledgeBase)/sizeof(KnowledgeBase[<font color=#]);
record* find_match(char*&&input) {
&&& for(int i = <font color=#; i & nKnowledgeBaseS&&++i) {
&&&&&&&&if( !stricmp( KnowledgeBase[i].input, input ) )
&&&&&&&&&&&&return &KnowledgeBase[i];
&&& return NULL;
void chatterbot2()
&&& srand((unsigned) time(NULL));
&&& char sInput[<font color=#] = {<font color=#};
&&& char* sResponse = NULL;
&&& while(<font color=#) {
&&&&&&&&printf(&&&);
&&&&&&&&scanf(&<font color=#[^\n]&, &sInput);
&&&&&&&&fflush(stdin);
&&&&&&&&record* responses = find_match(sInput);
&&&&&&&&if(sInput == &BYE&) {
&&&&&&&&&&&&printf(&和你聊天太愉快了,下次再来!\n&);
&&&&&&&&&&&&_sleep(<font color=#0);
&&&&&&&&&&&&break;
&&&&&&&&else if( !responses )&&{
&&&&&&&&&&&&printf(&我,我,我不确定我是否能理解你说的是什么 ...\n&);
&&&&&&&&else {
&&&&&&&&&&&&int nSelection = rand()&&% MAX_RESP;
&&&&&&&&&&&&sResponse = responses-&responses[nSelection];
&&&&&&&&&&&&printf(&%s\n&, sResponse);
// 太久不写代码了,我不确信 main 是否是这样声明的...
int main()
&&& chatterbot1();
&&& chatterbot2();
&&& return <font color=#;
等 级:新手上路
楼上改的很好
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:731
专家分:1546
怎么样能嵌入到QQ群,QQ的聊天界面中去呢?
我恰巧最近在做这么个功能的东西
学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Black Cat&&&&&&Hello Tomorrow~
等 级:贵宾
威 望:204
帖 子:15449
专家分:65859
以下是引用AleTiff在 13:15:36的发言:
&&各位大神,好专业啊,真是惭愧死我了。 得改,一定要改改,C 版绝不用带尾巴的代码。
允许我用代码框简单改写成 C 代码,当然,我努力要写得看起来比 C++ 更加简单,最起码也不能比原始 C++ 更复杂,C 是优秀语言嘛&&
全部代码包括了上面的二个例子代码:
#include&&
#include&&
#include&&
#include&&
&&& 描述:这是一个聊天机器人程序一个非常基本的例子 chatterbot1
void chatterbot1()
&&& char* Response[] = {
&&&&&&&&&我听到了!&,
&&&&&&&&&你是在和我说话。&,
&&&&&&&&&继续说,我在听。&,
&&&&&&&&&哈哈,真是非常有趣的谈话。&,
&&&&&&&&&后来呢?&&&&&&
&&& srand((unsigned) time(NULL));
&&& char sInput[5] = {0};
&&& char* sResponse = NULL;
&&& while(1) {
&&&&&&&&printf(&&&);
&&&&&&&&scanf(&%4s&, &sInput);
&&&&&&&&fflush(stdin);
&&&&&&&&if(sInput[0] == 0x71 || sInput[0] == 0x51 ){
&&&&&&&&&&&&printf(&和你聊天真的很愉快, 下次再见。\n&);
&&&&&&&&&&&&_sleep(1000);
&&&&&&&&&&&&
&&&&&&&&int nSelection = rand() % 5;
&&&&&&&&sResponse = Response[nSelection];
&&&&&&&&printf(&%s\n&, sResponse);
&&& 描述:这是一个改进版聊天机器人程序 chatterbot2
const int MAX_RESP = 3;
typedef struct {
&&& char *
&&& char *responses[MAX_RESP];
record KnowledgeBase[] = {
&&& {&WHAT IS YOUR NAME&,&&
&&& {&嗯,我的名字叫瞎聊。&,
&&&&&&你可以叫我公主...,是啊,我是大小姐啊。&,
&&&&&&为什么你想知道我的名字?下一步是要交换QQ号吗?&}
&&& {&HI&,&&
&&& {&哈哈,好啊!&,
&&&&&&你是谁?&,
&&&&&&噢,你好!&}
&&& {&HOW ARE YOU&,
&&& {&我干得不坏!&,
&&& &你干得怎么样?&,
&&& &为什么你会想知道我是怎么做到的?&}
&&& {&WHO ARE YOU&,
&&& {&我尼玛就是个程序啊。&,
&&&&&&表说,我知道你知道我是谁。&,
&&&&&&为什么还问?&}
&&& {&ARE YOU INTELLIGENT&,
&&& {&是的,当然是的。&,
&&&&&&你是怎么想的?&,
&&&&&&哈哈,事实上我确实很聪明。&}
&&& {&ARE YOU REAL&,
&&& {&这对你真的是个问题吗?&,
&&&&&&啥意思啊?你?&,
&&&&&&我尽量让我看起来像个真正的人类。&}
size_t nKnowledgeBaseSize = sizeof(KnowledgeBase)/sizeof(KnowledgeBase[0]);
record* find_match(char*&&input) {&&
&&& for(int i = 0; i & nKnowledgeBaseS&&++i) {
&&&&&&&&if( !stricmp( KnowledgeBase.input, input ) )
&&&&&&&&&&&&return &KnowledgeB
&&& return NULL;&&
void chatterbot2()
&&& srand((unsigned) time(NULL));
&&& char sInput[20] = {0};
&&& char* sResponse = NULL;
&&& while(1) {
&&&&&&&&printf(&&&);
&&&&&&&&scanf(&%19[^\n]&, &sInput);
&&&&&&&&fflush(stdin);
&&&&&&&&record* responses = find_match(sInput);
&&&&&&&&if(sInput == &BYE&) {
&&&&&&&&&&&&printf(&和你聊天太愉快了,下次再来!\n&);
&&&&&&&&&&&&_sleep(1000);
&&&&&&&&&&&&
&&&&&&&&}&&
&&&&&&&&else if( !responses )&&{
&&&&&&&&&&&&printf(&我,我,我不确定我是否能理解你说的是什么 ...\n&);
&&&&&&&&else {
&&&&&&&&&&&&int nSelection = rand()&&% MAX_RESP;
&&&&&&&&&&&&sResponse = responses-&responses[nSelection];
&&&&&&&&&&&&printf(&%s\n&, sResponse);&&
&&&&&&&&}&&
// 太久不写代码了,我不确信 main 是否是这样声明的...
int main()
&&& chatterbot1();
&&& chatterbot2();
&&& return 0;
} 来学习的 谢谢
等 级:新手上路
回复 楼主 AleTiff
LZ我想学习,目前C语言是最有效(编程简单,实现效果比较多)的编写机器人聊天软件的工具吗?&&好像还有易语言也可以编写,那个效果如何?
版权所有,并保留所有权利。
Powered by , Processed in 0.040896 second(s), 7 queries.
Copyright&, BCCN.NET, All Rights Reserved}

我要回帖

更多关于 人形机器人舞台剧表演 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信