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持久性管理pickle模块详细介绍
Feb 18 Python
解析Python中的eval()、exec()及其相关函数
Dec 20 Python
python tkinter界面居中显示的方法
Oct 11 Python
从DataFrame中提取出Series或DataFrame对象的方法
Nov 10 Python
python读取图片任意范围区域
Jan 23 Python
利用Django模版生成树状结构实例代码
May 19 Python
Python中asyncio模块的深入讲解
Jun 10 Python
Python面向对象之多态原理与用法案例分析
Dec 30 Python
python关于变量名的基础知识点
Mar 03 Python
python 已知平行四边形三个点,求第四个点的案例
Apr 12 Python
python爬虫beautifulsoup解析html方法
Dec 07 Python
Python实现滑雪小游戏
Sep 25 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
提问的智慧
2006/10/09 PHP
thinkphp在模型中自动完成session赋值示例代码
2014/09/09 PHP
Laravel 5 框架入门(二)构建 Pages 的管理功能
2015/04/09 PHP
用javascript实现的仿Flash广告图片轮换效果
2007/04/24 Javascript
JavaScript 浮点数运算 精度问题
2009/10/06 Javascript
javascript中的原型链深入理解
2014/02/24 Javascript
表单提交前触发函数返回true表单才会提交
2014/03/11 Javascript
jQuery 复合选择器应用的几个例子
2014/09/11 Javascript
javascript控制台详解
2015/06/25 Javascript
微信页面倒计时代码(解决safari不兼容date的问题)
2016/12/13 Javascript
bootstrap侧边栏圆点导航
2017/01/11 Javascript
js实现轮播图的两种方式(构造函数、面向对象)
2017/09/30 Javascript
浅谈vue-router2路由参数注意的问题
2017/11/08 Javascript
vue.js或js实现中文A-Z排序的方法
2018/03/08 Javascript
使用webpack搭建react开发环境的方法
2018/05/15 Javascript
ES6模板字符串和标签模板的应用实例分析
2019/06/25 Javascript
Vue.js的模板语法详解
2020/02/16 Javascript
windows系统中python使用rar命令压缩多个文件夹示例
2014/05/06 Python
在Python中使用PIL模块对图片进行高斯模糊处理的教程
2015/05/05 Python
快速入门python学习笔记
2017/12/06 Python
python3实现SMTP发送邮件详细教程
2018/06/19 Python
Python单元测试简单示例
2018/07/03 Python
python中datetime模块中strftime/strptime函数的使用
2018/07/03 Python
对python:threading.Thread类的使用方法详解
2019/01/31 Python
python语言元素知识点详解
2019/05/15 Python
使用Flask-Cache缓存实现给Flask提速的方法详解
2019/06/11 Python
Django基础三之视图函数的使用方法
2019/07/18 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
2019/10/24 Python
Python创建自己的加密货币的示例
2021/03/01 Python
html5录音功能实战示例
2019/03/25 HTML / CSS
加拿大时尚少女服装品牌:Garage
2016/10/10 全球购物
德国高尔夫商店:Par71.de
2020/11/29 全球购物
元旦趣味活动方案
2014/08/22 职场文书
幼儿学前班评语
2014/12/29 职场文书
运动会宣传语
2015/07/13 职场文书
《司马光》教学反思
2016/02/22 职场文书