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实现去除下载电影和电视剧文件名中的多余字符的方法
Sep 23 Python
KMP算法精解及其Python版的代码示例
Jun 01 Python
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
May 18 Python
Python中的is和==比较两个对象的两种方法
Sep 06 Python
Python并发编程协程(Coroutine)之Gevent详解
Dec 27 Python
django query模块
Apr 20 Python
python使用Matplotlib改变坐标轴的默认位置
Oct 18 Python
python实现的Iou与Giou代码
Jan 18 Python
利用Python计算KS的实例详解
Mar 03 Python
Python求解排列中的逆序数个数实例
May 03 Python
Python字符串split及rsplit方法原理详解
Jun 29 Python
Pytorch数据读取之Dataset和DataLoader知识总结
May 23 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
thinkphp文件处理类Dir.class.php的用法分析
2014/12/08 PHP
php检查是否是ajax请求的方法
2015/04/16 PHP
php自动识别文字编码并转换为目标编码的方法
2015/08/08 PHP
使用PHP如何实现高效安全的ftp服务器(一)
2015/12/20 PHP
PHP强制转化的形式整理
2020/05/22 PHP
不错的新闻标题颜色效果
2006/12/10 Javascript
js实现运行代码需要刷新的解决方法
2007/08/18 Javascript
借用Google的Javascript API Loader来加速你的网站
2009/01/28 Javascript
javaScript(JS)替换节点实现思路介绍
2013/04/17 Javascript
javascript正则匹配汉字、数字、字母、下划线
2014/04/10 Javascript
Flexigrid在IE下不显示数据的有效处理方法
2014/09/04 Javascript
JSON取值前判断
2014/12/23 Javascript
浅谈javascript对象模型和function对象
2014/12/26 Javascript
jquery 根据name名获取元素的value值
2015/02/27 Javascript
JavaScript控制网页层收起和展开效果的方法
2015/04/15 Javascript
深入浅析JavaScript中数据共享和数据传递
2016/04/25 Javascript
javascript简单判断输入内容是否合法的方法
2016/05/11 Javascript
JS控制文本域只读或可写属性的方法
2016/06/24 Javascript
JS正则表达式修饰符中multiline(/m)用法分析
2016/12/27 Javascript
node.js中fs文件系统目录操作与文件信息操作
2018/02/24 Javascript
小程序从手动埋点到自动埋点的实现方法
2019/01/24 Javascript
nodejs分离html文件里面的js和css的方法
2019/04/09 NodeJs
对Python中class和instance以及self的用法详解
2019/06/26 Python
Python获取excel内容及相关操作代码实例
2020/08/10 Python
德国高端单身人士交友网站:ElitePartner
2018/12/02 全球购物
德国领先的大尺码和超大尺码男装在线零售商:Bigtex
2019/06/22 全球购物
简历中的自我评价范文
2014/02/05 职场文书
《三峡》教学反思
2014/03/01 职场文书
婚礼答谢宴主持词
2014/03/14 职场文书
2014年秋季开学寄语
2014/08/02 职场文书
私人委托书格式
2014/09/10 职场文书
单位作风建设剖析材料
2014/10/11 职场文书
维稳工作承诺书
2015/01/20 职场文书
研究生个人学年总结
2015/02/14 职场文书
污水处理保证书
2015/05/09 职场文书
2015年国庆节寄语
2015/08/17 职场文书