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实用技巧两则
Aug 29 Python
在Django的视图中使用form对象的方法
Jul 18 Python
深入理解NumPy简明教程---数组2
Dec 17 Python
django模型层(model)进行建表、查询与删除的基础教程
Nov 21 Python
Python中顺序表的实现简单代码分享
Jan 09 Python
Python实现正弦信号的时域波形和频谱图示例【基于matplotlib】
May 04 Python
python中多层嵌套列表的拆分方法
Jul 02 Python
Python设计模式之适配器模式原理与用法详解
Jan 15 Python
Python基础学习之时间转换函数用法详解
Jun 18 Python
Pytorch之finetune使用详解
Jan 18 Python
Django与pyecharts结合的实例代码
May 13 Python
Python 机器学习工具包SKlearn的安装与使用
May 14 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一些有意思的小区别
2006/12/06 PHP
php UTF-8、Unicode和BOM问题
2010/05/18 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
2013/01/23 PHP
php笔记之:php数组相关函数的使用
2013/04/26 PHP
关于初学PHP时的知识积累总结
2013/06/07 PHP
用 Composer构建自己的 PHP 框架之使用 ORM
2014/10/30 PHP
PHP判断上传文件类型的解决办法
2015/10/20 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
2018/08/17 PHP
PHP addAttribute()函数讲解
2019/02/03 PHP
Smarty模板配置实例简析
2019/07/20 PHP
jQuery 位置函数offset,innerWidth,innerHeight,outerWidth,outerHeight,scrollTop,scrollLeft
2010/03/23 Javascript
javascript操作ul中li的方法
2015/05/14 Javascript
jquery动画效果学习笔记(8种效果)
2015/11/13 Javascript
nodejs+express搭建多人聊天室步骤
2018/02/12 NodeJs
Koa日志中间件封装开发详解
2019/03/09 Javascript
JavaScript中常用的简洁高级技巧总结
2019/03/10 Javascript
js实现烟花特效
2020/03/02 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
python中常用检测字符串相关函数汇总
2015/04/15 Python
Django卸载之后重新安装的方法
2017/03/15 Python
TensorFlow 模型载入方法汇总(小结)
2018/06/19 Python
python中ASCII码和字符的转换方法
2018/07/09 Python
Python 使用类写装饰器的小技巧
2018/09/30 Python
浅析Python与Mongodb数据库之间的操作方法
2019/07/01 Python
基于Python的OCR实现示例
2020/04/03 Python
python实现企业微信定时发送文本消息的实例代码
2020/11/25 Python
解决python3.6用cx_Oracle库连接Oracle的问题
2020/12/07 Python
比驿:全球酒店比价网
2018/06/20 全球购物
设计师大码女装:11 Honoré
2020/05/03 全球购物
光声世纪笔试题目
2012/08/25 面试题
导师推荐信范文
2014/05/09 职场文书
2014年群众路线教育实践活动整改措施
2014/09/24 职场文书
校长师德表现自我评价
2015/03/04 职场文书
大学生社会服务心得体会
2016/01/22 职场文书
学校2016年九九重阳节活动总结
2016/04/01 职场文书