02
最近大家都陆陆续续开始上班复工了,但是节后综合征让大家都没有很好的注意力来上班,所以小编为了给大家提供学习和游乐的好帮手,决定为大家开发一款新的游戏,名字叫做《人机猜拳大对决》。
技术要点:
-
本程序主要是利用了百度的AI开放平台,我们只需要通过百度开放的接口;
-
并按照接口的格式上传我们拍摄的图片,便可以返回我们的手势姿势;
-
通过返回的手势姿势和电脑自动生成的手势,进行猜拳,并判断谁胜谁负。
用到的库:
-
百度AI的API库: baidu-aip。
-
用于打开摄像头并保存图片的opencv库:cv2
-
用于延时的库: time
-
随机选择参数的库: random
-
获取接口返回数据的库:requests
-
用于接口上传数据加密的库:base64
01
整体设计思路
游戏的玩法其实很简单,大家只需要运行程序,然后程序会自动启动电脑的摄像头,然后大家只需要在摄像头中比出剪刀、石头和布的形状,调整好姿势后,按“enter”键进行确认,程序便会自动的进行判断,到底谁胜谁负。
当然,在双方出拳的过程中,谁也不能发现对方的结果,这样就保证了游戏的公平性,下面就跟随小编一起来了解整个程序的流程吧。
1).获取手势的姿势
要获取我们比出的手势姿势,我们需要调用电脑的摄像头,这里小编利用的是opencv来打开摄像头,程序如下图所示:
上述的程序中,我们使用opencv打开摄像头,然后不断的去获取视频流中的帧,当我们调整好姿势之后,便点击“enter”按钮来保存我们视频流中的获取的最后一帧图像,并保存到本地当中,结果如下所示:
让电脑明白我们的手势
上面是保存了我们的手势的图像,接下来我们就要去判断我们比出的手势到底是什么了,这里我们利用的是百度的人体分析的API进行分析,程序如下所示:
上述的程序中,我们首先要构造我们的链接,这里的access_token关键字是我们的访问令牌,有了这个令牌我们才能获取得到我们的结果。然后我们技术分析我们的返回结果,如果不是剪刀、石头或者是布,则返回“unknown”。
那么我们如何获取这个access_token令牌呢:
-
首先我们需要去到百度的AI开发者平台,创建一个人体分析的应用;
-
并得到应用的API Key和Secret Key,然后运行下图中的程序,获取得到我们的access_token令牌;
-
其中client_id就是我们的API Key,client_secret就是我们的secret_key
通过百度的API获得我们的答案后,接下来就是跟电脑出的拳进行PK了,程序如下图所示:
-
上述的程序中,电脑首先随机出一个数字,并保存到computer_ges变量中;然后我们通过catch_gesture和get_gesture_result函数获取得到我们的输入;接着电脑会比较我们出的拳与电脑出的拳,并判断谁胜谁负,并给出提示;
-
如果我们想退出游戏,点击‘q’即可停止;
-
如果想继续的话,大家只需要点击其他的按键即可。
以上就是为大家进行程序的介绍,最后小编为大家带来视频的展示,通过趣味学习Python,如果觉得有趣,那就动起手来,玩起来吧!
视频展示:
需要源码,后台输入:【菜鸟哥】
点击阅读原文,阅读菜鸟学Python 400篇干货!
本篇文章来源于: 菜鸟学Python
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 爬虫实战 | 爬取东方财富网股票数据07/02
- ♥ python中的zfill方法是如何设置字符串的?11/16
- ♥ Python实现查询纠错12/24
- ♥ python有几种排序方式09/08
- ♥ python列表删除项方法09/26
- ♥ python中的百分号是什么意思08/27
内容反馈