2179浏览
查看: 2179|回复: 1

经典小游戏猜数字

[复制链接]
猜数字(又称 Bulls and Cows )是一种古老的的密码破译类益智类小游戏,起源于20世纪中期,一般由两个人或多人玩,也可以由一个人和电脑玩。
本文尝试用树莓派人工智能技术实现经典的python小游戏。首先程序自动选择一个1到20之间的数字,然后由用户来猜,用户猜测的数字由摄像头拍照,然后识别,与标准答案对比后,给出相应的语音提示,如猜大了,猜小了,猜对了。用户根据程序的提示信息,继续猜测,直至猜对。
本文主程序包括四部分,分别是游戏初始化、guess子线程、check子线程和结束提示。下面依次进行说明。
经典小游戏猜数字图1

一、游戏初始化
创建游戏初始化函数
1、创建结束游戏变量并赋值为0
2、创建测试次数变量并赋值为0
3、创建开始检测变量并赋值为0
4、创建标准答案变量并赋值为取一个随机数,最大数可自由设定,如10、20、1000,甚至更大。
5、输出程序自动设定的标准答案
为了帮助大家理解,可以输出标准答案,程序设计检验完成后,可将此积木禁用。
6、创建输出反馈变量并赋值为欢迎您参与猜数字小游戏!
程序开始前给出一点程序开始的语音提示,增强互动性。当然也可以添加更多的语音提示内容。
7、播放语音提示内容
经典小游戏猜数字图2

二、guess子线程:
1、创建guess子线程
2、创建guess函数
注意子线程名称与函数名称要完全一致。特别是大小写也要完全一致。
3、创建红外值变量,接收红外线传感器返回的数据。
4、条件判断,如果红外值为真。
5、输出红外值,便于程序调试。
6、给红外值赋值为0
给条件判断增加退出的条件,确保触发一次,只执行一次。
7、输出正在拍照的信息
由于受硬件设备影响,给出提示,告知用户程序运行到哪一步了。
8、创建照片变量,接收摄像头拍照得到的数据。
9、输出拍照已经结束的提示信息。
10、输出图片到网页,用于程序调试。
11、创建您的答案变量
将图片识别的数字信息赋值给您的答案变量。
12、将答案变量获取整数后再赋值给您的答案
图片识别后获取的数据是字符串类型的,后续的数字比较需要数字型的数据,因此增加获取整数积木,使字符串类型的数据变为数字型的数据。
13、语音播报您的答案。
增加延时2秒,考虑网络因素。
14、输出您的答案变量,便于调试。
15、赋值开始检测变量为1
为下一线程开始提供条件。
16、关闭摄像头。
用完了摄像头,要及时关闭。最大限度保护摄像头,同时也方便下次使用。
经典小游戏猜数字图3

三、check子线程
1、创建check子线程和check函数:
注意子线程名称与函数名称要完全一致。特别是大小写也要完全一致。
2、条件判断,如果开始检测变量为1,则开启后续程序。
3、赋值开始检测变量为0,确保后续程序只运行一次。
4、判断您的答案与标准答案是否一致。
5、如果答案一致,赋值输出反馈为猜对了,祝贺您!
6、如果答案一致,赋值结束结束游戏变量为1,为退出程序提供条件。
7、如果您的答案大于标准答案,赋值输出反馈为您猜的数字太大了。
8、如果您的答案小于标准答案,赋值输出反馈为您猜的数字太小了。
9、将输出反馈变量的值输出到屏幕,便于程序调试。
10、如果结束游戏变量为1或者测试次数变量为5,
说明已经猜对了,或者已经用完了测试次数,那么程序就应该结束了。
11、增加输出反馈变量的内容。
在原有的输出反馈提示信息的后面再追加上,谢谢您的N次参与。
其中测试次数是一个变量,由程序自动调用。
12、语音播报反馈信息。
13、停止check子线程。
14、如果没有猜对,同时,还有测试机会。
15、将原来的输出反馈后面追加上您还有N次机会。
其中测试次数是一个变量,由程序自动调用。
16、语音播报测试反馈。
经典小游戏猜数字图4

至此,猜数字小游戏已经全部结束,仔细检查一遍你的程序,运行测试一下吧!
喜欢更多原创作品请关注公众号四五创客。
经典小游戏猜数字图5

DFrJ5KYVQaH  中级技匠

发表于 2020-5-5 09:11:02

经典,学习之
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail