python随机数生成抽奖_如何用 Python 写个年终抽奖程序?

本文介绍了如何使用Python和tkinter创建一个抽奖程序,包括自动加载名单、防止重复中奖、图形界面交互以及键盘控制功能。程序设计注重美观和公平性,适合各类活动抽奖场景。
摘要由CSDN通过智能技术生成

下周我们公司的圣诞 Party 活动安排有抽奖环节,由于不方便采用手机抽奖,且目前选用的电脑端在线抽奖会出现卡顿情况,最近我就尝试着用 Python 实现抽奖功能。目前进展不错,也想分享给大家,由于涉及隐私嘛,做了番保密修改,将要展示的抽奖公司搬到了水泊梁山,助力 108 好汉进行抽奖。

人家需不需要呢咱也不敢问,反正抽奖程序是做好了,请大家过目:

2bd5e08ddfa0b3fa7a569993d80af9b9.png

运行前准备好参与抽奖的好汉名单,本程序会自动读取表格文件,将待抽奖的各位好汉展示在左侧奖池中,只要点击图中小鹿的红鼻子,会默认抽取三等奖(共十位)。

2c0c402447e484cea896a1b703394175.gif

文章结尾附有完整版细节视频。可以看到,抽奖时好汉名字会在中央滚动展示,当再次点击红鼻子完成单次抽奖时,中奖的名字会从左侧奖池转移到右侧获奖榜上。

一、二等奖分别五位,与三等奖抽取的区别在于要先选择右侧 1 号金色或 2 号银色标志,根据点选标志抽取相应奖项。

f474bb2330b2176b44cd878c23e01355.gif

当然,如果三等奖未完成,也可以点选 1 号金标 或 2 号银标 先行抽取,之后再通过点 3 号铜标 完成三等奖的抽取。在获奖榜满额时,再次抽奖会触发弹框提醒。

此外,左下方的 "Let's go!" 字样是重置开关,点击会重新载入数据进行抽奖。

d744979231f8ef737606bb14bc13d14a.gif

当然,除了鼠标点击事件的控制,该抽奖程序也添加了键盘控制:例如数字键可以直接选择奖项,空格键等同于红鼻子控制,Esc 键退出抽奖等。

如上便是目前抽奖程序的功能和界面了,下面分享下我在设计与编码过程中的路线和想法。


需求与设计

首先归纳下整个抽奖程序的需求:

  1. 基本功能是实现名单中的随机抽取

  2. 活动穿插三轮抽奖,不能重复中奖

  3. 尽量美观

  4. 打消暗箱操作的怀疑

基于总结的需求点,我整理的设计方案如下:

  1. 名单自动载入至列表中

  2. 随机抽取名单列表,抽中后移除该元素

  3. 图形界面展现抽奖过程和结果,选用 tkinter 来实现

  4. 绑定鼠标、键盘控制抽奖过程

滚动随机数

首先搜索 “Python 抽奖程序”,在众多素材中看到了一份可以 tkinter 界面动态展示随机数的代码。拷贝过来运行,效果如图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值