Python趣味实例,实现一个简单的抽奖刮刮卡


Posted in Python onJuly 18, 2020

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

作者:黑白之道

刮刮卡通常指卡上的一种覆盖数字和字母密码等的涂层,通常包括纸质和电子两种类型,刮刮卡在市场上有着比较广泛的应用,我们见到最多的应该是各类抽奖活动了,本文我们使用 Python 来做一个简单的抽奖刮刮卡。

实现

首先,我们弄几张图片做底板,如下所示:

Python趣味实例,实现一个简单的抽奖刮刮卡

从图中我们可以看到底图包括:一等奖、二等奖、谢谢惠顾三种,如果我们参与过刮刮卡抽奖的话,会发现几乎刮开都是谢谢惠顾之类的,也就是有个概率的问题,这里我们也简单设置一下,一等奖放一张、二等奖放两张、谢谢惠顾放三张,生成刮刮卡时随机使用底图就可以了。

实现刮刮卡,我们主要用到是 pygame 模块,之前做小游戏时已经用到过几次了,大家应该都比较熟悉,下面看一下具体实现。

我们先定义一下常量,如:路径、图片类型、颜色等,代码实现如下:

path = 'prize'
ptype = ['jpg', 'png', 'bmp', 'JPG', 'PNG', 'BMP']
# 窗口大小
screen_size = (600, 400)
white = (255, 255, 255, 20)
gray = (192, 192, 192)

然后创建一个窗口,代码实现如下:

pygame.init()
pygame.mouse.set_cursor(*pygame.cursors.diamond)
screen = pygame.display.set_mode(screen_size)
pygame.display.set_caption('刮一刮抽奖')

接着从所有底图中随机取出一张绑定到窗口,代码实现如下:

filenames = os.listdir(path)
filenames = [f for f in filenames if f.split('.')[-1] in ptype]
imgpath = os.path.join(path, random.choice(filenames))
image_used = pygame.transform.scale(pygame.image.load(imgpath), screen_size)
screen.blit(image_used, (0, 0))

再接着做一个灰色的图层覆盖到底图上,代码实现如下:

surface = pygame.Surface(screen_size).convert_alpha()
surface.fill(gray)
screen.blit(surface, (0, 0))

最后,我们定义一下鼠标事件,在鼠标移动经过的地方,将图层置为透明,漏出底图,代码实现如下:

mouse_event = pygame.mouse.get_pressed()
if mouse_event[0]:
 pygame.draw.circle(surface, white, pygame.mouse.get_pos(), 40)
elif mouse_event[-1]:
 surface.fill(gray)
 image_used = pygame.transform.scale(pygame.image.load(imgpath), screen_size)

一起来看一下实现效果:

Python趣味实例,实现一个简单的抽奖刮刮卡

是不是有内味了

总结

本文我们使用 Python 实现了一个简单的刮刮卡,有兴趣的话,可以对一些实现细节、效果等做进一步完善。

以上就是Python趣味实例,实现一个简单的抽奖刮刮卡的详细内容,更多关于Python 实现抽奖的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python中if __name__ == "__main__"详细解释
Oct 21 Python
PyMongo安装使用笔记
Apr 27 Python
使用Python简单的实现树莓派的WEB控制
Feb 18 Python
Tensorflow实现卷积神经网络用于人脸关键点识别
Mar 05 Python
Django 实现下载文件功能的示例
Mar 06 Python
python的debug实用工具 pdb详解
Jul 12 Python
pytorch下使用LSTM神经网络写诗实例
Jan 14 Python
Python输出指定字符串的方法
Feb 06 Python
Python pandas 列转行操作详解(类似hive中explode方法)
May 18 Python
详解python命令提示符窗口下如何运行python脚本
Sep 11 Python
Django如何使用asyncio协程和ThreadPoolExecutor多线程
Oct 12 Python
从np.random.normal()到正态分布的拟合操作
Jun 02 Python
用python给csv里的数据排序的具体代码
Jul 17 #Python
python如何删除列为空的行
Jul 17 #Python
Python操作Elasticsearch处理timeout超时
Jul 17 #Python
python设置表格边框的具体方法
Jul 17 #Python
六种酷炫Python运行进度条效果的实现代码
Jul 17 #Python
idea2020手动安装python插件的实现方法
Jul 17 #Python
Python调用百度OCR实现图片文字识别的示例代码
Jul 17 #Python
You might like
php下实现一个阿拉伯数字转中文数字的函数
2008/07/10 PHP
IIS6.0 开启Gzip方法及PHP Gzip函数分享
2014/06/08 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
2014/08/21 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
2015/06/17 PHP
thinkPHP5.0框架模块设计详解
2017/03/18 PHP
微信支付之JSAPI公众号支付详解
2019/05/15 PHP
Laravel框架之解决前端显示图片问题
2019/10/24 PHP
用roll.js实现的图片自动滚动+鼠标触动的特效
2007/03/18 Javascript
JavaScript XML实现两级级联下拉列表
2008/11/10 Javascript
jquery连缀语法如何实现
2012/11/29 Javascript
intro.js 页面引导简单用法 分享
2013/08/06 Javascript
纯js简单日历实现代码
2013/10/05 Javascript
JS实现鼠标经过好友列表中的好友头像时显示资料卡的效果
2014/07/02 Javascript
js 获取今天以及过去日期
2017/04/11 Javascript
JS实现点击Radio动态更新table数据
2017/07/18 Javascript
Angular ui-roter 和AngularJS 通过 ocLazyLoad 实现动态(懒)加载模块和依赖
2018/11/25 Javascript
深入学习Vue nextTick的用法及原理
2019/10/08 Javascript
详解node和ES6的模块导出与导入
2020/02/19 Javascript
JavaScript实现密码强度实时验证
2020/03/18 Javascript
基于python list对象中嵌套元组使用sort时的排序方法
2018/04/18 Python
python爬虫selenium和phantomJs使用方法解析
2019/08/08 Python
解决Python对齐文本字符串问题
2019/08/28 Python
零基础学python应该从哪里入手
2020/08/11 Python
美国一家主打母婴用品的团购网站:zulily
2017/09/19 全球购物
联想西班牙官网:Lenovo西班牙
2018/08/28 全球购物
澳大利亚排名第一的狂热牛仔品牌:ONETEASPOON
2018/11/20 全球购物
英国奢华护肤、美容和Spa品牌:Temple Spa
2019/11/02 全球购物
一组SQL面试题
2016/02/15 面试题
餐饮业经理竞聘演讲稿
2014/01/14 职场文书
办公室员工岗位工作职责
2014/03/10 职场文书
乡镇办公室工作决心书
2014/03/11 职场文书
竞选班干部演讲稿
2014/04/24 职场文书
十佳党员事迹材料
2014/08/28 职场文书
欢迎词怎么写
2015/01/23 职场文书
家属慰问信
2015/02/14 职场文书
2015驻村干部工作总结
2015/04/07 职场文书