所有分类
主题 主题
平台 平台
我的工作台
userHead
注册时间 [[userInfo.create_time]]
创造力 [[userInfo.creativity]]
[[userInfo.remark]]
[[d.project_title]]
articleThumb
[[d.material_name]]
timelineThumb
进入工作台
折叠
所有分类 我的工作台
展开

AI成语接龙

迪奥不懒惰 迪奥不懒惰 2020-01-18 07:06:11
2
0
简单

【项目背景】

春节就快到了,我们都会到亲戚家串门,但又没有什么好的娱乐活动。于是我想着做一个成语接龙的程序,这样大家又可以娱乐,又可以学习知识,真可谓一举两得。

【原理分析】

首先去网上查找成语库,将其整理好导入 Mind+ 的列表中。我们用随机数随机抽取成语,用户来回答。回答正确后需要将成语库中这个回答过的成语去除,以免再次抽到。我们可以通过掌控板的屏幕来显示语音识别结果以及正在接龙的成语信息。

projectImage
材料清单 材料清单
1x
掌控板
1x
高品质 micro USB数据线
步骤1 步骤1
引入扩展

将 Mind+ 切换到实时模式,选择【扩展】-->【主控板】下的【掌控板】。

projectImage

选择【功能模块】下的【文字朗读】与【语音识别】。

projectImage

最后选择【网络服务】下的【AI图像识别】。

projectImage
步骤2 步骤2
设计舞台与角色

在背景库中选择【Room 1】作为舞台背景。

projectImage

去角色库中挑选【钥匙】作为新的角色。我们用这个角色来显示参考成语,用 Mind+ 来隐藏参考成语。

projectImage
步骤3 步骤3
编写程序

开始编写代码之前我们需要创建一些变量。【参考成语】变量用来临时存放在成语库中找到的可以往下接的成语,最终找到的所有参考成语我们都要存放到【参考成语】列表变量中。【查找】变量用来记录当前成语是否已经猜过。【出成语】变量是电脑随机出的一个成语。【下接成语】用在查找函数中。变量【i】就是一个循环变量。

【初始化成语库】中我们导入了网上获取的成语列表。每次游戏开始的时候我们将【初始化成语库】的项目全都复制给【成语题库】,每次接龙用过一个成语,我们就要从【成语题库】中删除一个成语。【已接成语】列表用来显示接龙接过的成语。

projectImage

我们在 Mind+ 角色中编写主程序。程序开始的时候先进行一些初始化操作,例如清空一些列表,然后将【初始化成语库】中的内容全都复制到【成语题库】中。接着开始播放规则说明。点击钥匙可以看参考成语,点击 Mind+ 可以隐藏参考成语。

每次用户说完以后通过函数判断是否正确。如果正确则电脑接成语,否则一直让用户重新说。

projectImage

【机器人接成语】函数顾名思义就是机器人对用户的成语进行接龙。通过查找的方式在【成语题库】中找到合适的成语。如果找到了就等待用户答题,如果找不到就说接不上来了。

projectImage

【人接成语】函数用来响应用户回答。在用户回答后,我们要判断这个成语是否合法,即是否符合成语接龙的规则,然后判断该成语是否回答过。如果回答过就要求重答,否则判断这个成语是否在成语库中。如果不在就让用户重答,否则即回答正确。(可能我的成语库太小,自己说的有些成语明明是对的,但是成语库中不存在,就要说我错,T_T)

projectImage

【查是否说过】函数用来检查用户的成语是否已经在接龙列表中出现过。如果出现过则一直让用户重答。

projectImage

【参考成语】函数用来寻找所有下一个可以接的成语,放到参考成语列表中。当 Mind+ 角色被点击的时候,我们可以隐藏参考成语列表。

projectImage

在钥匙角色中我们只需要写以下代码即可。当钥匙被点击的时候显示参考成语列表,以免用户一直猜不到。

projectImage
步骤4 步骤4
创建百度智能云应用

打开百度 AI 开放平台 http://ai.baidu.com,点击页面右上角的控制台,用百度账号登录。然后选择左侧的【语音技术】。

projectImage

选择页面中的【创建应用】按钮。

projectImage

填写要创建应用的详细信息。我们只需要【语音合成】与【语音识别】。

projectImage

创建完成后会得到 AppID、API Key 和 Secret Key。

projectImage

将上述三个值填入【切换至独立账户】中。

projectImage

【视频演示】

附件 附件
Makelog作者原创文章,未经授权禁止转载。
2
0
评论
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
|
[[c.comment_content]]