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函数式编程指南(一):函数式编程概述
Jun 24 Python
python爬虫使用cookie登录详解
Dec 27 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
Jun 27 Python
pandas将numpy数组写入到csv的实例
Jul 04 Python
Python批量生成特定尺寸图片及图画任意文字的实例
Jan 30 Python
Pandas读取并修改excel的示例代码
Feb 17 Python
简单介绍python封装的基本知识
Aug 10 Python
基于Python实现人脸自动戴口罩系统
Feb 06 Python
Python多重继承之菱形继承的实例详解
Feb 12 Python
彻底搞懂python 迭代器和生成器
Sep 07 Python
python中append函数用法讲解
Dec 11 Python
pygame面向对象的飞行小鸟实现(Flappy bird)
Apr 01 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 error_log 函数的使用
2009/04/13 PHP
PHP支持多种格式图片上传(支持jpg、png、gif)
2011/11/03 PHP
php和js如何通过json互相传递数据相关问题探讨
2013/02/26 PHP
PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
2013/06/18 PHP
PHP实现Javascript中的escape及unescape函数代码分享
2015/02/10 PHP
简单谈谈PHP vs Node.js
2015/07/17 PHP
完美利用Yii2微信后台开发的系列总结
2016/07/18 PHP
jquery 弹出层实现代码
2009/10/30 Javascript
js 自定义的联动下拉框
2010/02/07 Javascript
html+css+js实现xp window界面及有关功能
2013/03/26 Javascript
利用NodeJS的子进程(child_process)调用系统命令的方法分享
2013/06/05 NodeJs
用JQuery实现全选与取消的两种简单方法
2014/02/22 Javascript
基于jquery实现智能表单验证操作
2016/05/09 Javascript
jQuery实现简单倒计时功能的方法
2016/07/04 Javascript
学习vue.js计算属性
2016/12/03 Javascript
Node.JS利用PhantomJs抓取网页入门教程
2017/05/19 Javascript
Vue之Watcher源码解析(2)
2017/07/19 Javascript
node.js命令行教程图文详解
2019/05/27 Javascript
JS如何实现网站中PC端和手机端自动识别并跳转对应的代码
2020/01/08 Javascript
vue组件系列之TagsInput详解
2020/05/14 Javascript
JQuery实现折叠式菜单的详细代码
2020/06/03 jQuery
编写v-for循环的技巧汇总
2020/12/01 Javascript
Python urllib模块urlopen()与urlretrieve()详解
2013/11/01 Python
Python工程师面试题 与Python基础语法相关
2016/01/14 Python
Python使用logging模块实现打印log到指定文件的方法
2018/09/05 Python
对numpy下的轴交换transpose和swapaxes的示例解读
2019/06/26 Python
python中最小二乘法详细讲解
2021/02/19 Python
有趣的睡衣和礼物:LazyOne
2019/11/27 全球购物
会计顶岗实习心得
2014/01/25 职场文书
就业推荐表自我鉴定
2014/03/21 职场文书
党员自我评议个人对照检查材料
2014/09/16 职场文书
违章停车检讨书
2014/10/21 职场文书
实名检举信范文
2015/03/02 职场文书
单位推荐信范文
2015/03/27 职场文书
班主任工作总结范文
2015/08/13 职场文书
mybatis源码解读之executor包语句处理功能
2022/02/15 Java/Android