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找出9个连续的空闲端口
Feb 01 Python
详解如何用OpenCV + Python 实现人脸识别
Oct 20 Python
Python cookbook(数据结构与算法)在字典中将键映射到多个值上的方法
Feb 18 Python
Python3 replace()函数使用方法
Mar 19 Python
python读取几个G的csv文件方法
Jan 07 Python
OpenCV-Python 摄像头实时检测人脸代码实例
Apr 30 Python
python flask搭建web应用教程
Nov 19 Python
使用python实现画AR模型时序图
Nov 20 Python
Tensorflow的常用矩阵生成方式
Jan 04 Python
详解pycharm连接不上mysql数据库的解决办法
Jan 10 Python
Python爬取微信小程序通用方法代码实例详解
Sep 29 Python
Sentry的安装、配置、使用教程(Sentry日志手机系统)
Jul 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
PHPMailer的主要功能特点和简单使用说明
2014/02/17 PHP
php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
2015/04/03 PHP
php生成网页桌面快捷方式
2017/05/05 PHP
php7安装mongoDB扩展的方法分析
2017/08/02 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
javascript闭包的理解和实例
2010/08/12 Javascript
Javascript实现DIV滚动自动滚动到底部的代码
2012/03/01 Javascript
javascript学习指南之回调问题
2016/04/23 Javascript
Treegrid的动态加载实例代码
2016/04/29 Javascript
解决微信浏览器Javascript无法使用window.location.reload()刷新页面
2016/06/21 Javascript
javascript实现简单的on事件绑定
2016/08/23 Javascript
AngularJS中控制器函数的定义与使用方法示例
2017/10/10 Javascript
Angular8路由守卫原理和使用方法
2019/08/29 Javascript
JavaScript实现模态对话框实例
2020/01/13 Javascript
微信小程序分享小程序码的生成(带参数)以及参数的获取
2020/03/25 Javascript
Vue实现点击箭头上下移动效果
2020/06/11 Javascript
Python实现的Kmeans++算法实例
2014/04/26 Python
python中global与nonlocal比较
2014/11/21 Python
python3.0 模拟用户登录,三次错误锁定的实例
2017/11/02 Python
Django 路由控制的实现代码
2018/11/08 Python
python实现邮件自动发送
2019/08/10 Python
Python jieba库用法及实例解析
2019/11/04 Python
python 比较2张图片的相似度的方法示例
2019/12/18 Python
Python3.6 中的pyinstaller安装和使用教程
2020/03/16 Python
Python xpath表达式如何实现数据处理
2020/06/13 Python
Python 实现将某一列设置为str类型
2020/07/14 Python
CSS实现定位元素居中的方法
2015/06/23 HTML / CSS
中国旅游网站:途牛旅游网
2019/09/29 全球购物
如果一个类实现了多个接口但是这些接口有相同的方法名将会怎样
2013/06/16 面试题
致标枪运动员广播稿
2014/02/06 职场文书
团日活动总结模板
2014/06/25 职场文书
小学竞选班干部演讲稿
2014/08/20 职场文书
党员三严三实对照检查材料
2014/10/13 职场文书
解除施工合同协议书
2014/10/17 职场文书
2014年信贷员工作总结
2014/11/18 职场文书
英语投诉信范文
2015/07/03 职场文书