Python 集五福 (pygame、pyautogui)

本文介绍了如何使用Python的pygame和pyautogui库来模拟支付宝集五福活动。作者详细阐述了程序框架、库的导入、pygame的初始化设置、角色与图片设定、主程序逻辑,包括福字的随机抽取和抽奖环节。最后提供了完整代码并邀请读者交流改进。

哈喽大家好,过年期间,支付宝就推出了“集五福”这个活动,用户需要通过扫描“福”字等方式来集五福。

过年这期间,我用pygame和pyautogui简单还原了一下支付宝集五福,也做了一些改变。

pygame的安装就不用多说了吧,网上都有,pyautogui呢,和pygame的安装思路都是差不多的,网上一查也能查到,我们就直接进入正题。

目录

一、程序框架

二、导入库

三、pygame初始化设置

四、设置角色等

五、进入集五福主程序

六、抽奖环节

七、图片

八、全部代码

九、总结


一、程序框架

先来盘点一下支付宝集五福的套路,一种福字特别好集,还有一种怎么也集不到,这个时候我们就需要外援了,比如让好友送你这个福字。我们就按照这个思路来编。

准备工作就是制作背景,福字的图片,按钮。

开始编程,首先肯定就是导入各种各样的库了。

然后是pygame的初始化设置,比如标题啊,页面大小啊等等。

接下来是pygame内部一些图片的导入以及后面随机数使用的列表和统计数据的字典。

然后开始编写主程序,就是检测按下按钮,随机抽取五福中的一个,然后提示用户,显示出来。

一但集齐五福,那么就要进入奖励环节,设置列表,随机抽取一个,最后发给用户。

二、导入库

第一步就是导入各种各样的库,我使用了 随机数(random),时间(time),pygame,pyautogui。

import random as r
import time
import pygame as p
import pyautogui as pp

三、pygame初始化设置

然后初始化设置pygame

p.init()
screen = p.display.set_mode((800,600))
p.display.set_caption("集五福")
icon = p.image.load("ys.png")
p.display.set_icon(icon)
bgImg = p.image.load("back.png")
bgImg = p.transform.scale(bgImg, (800, 600))

四、设置角色等

看这端程序的最后,就是将一个福创建特别多,有一个只有一个,这样就能实现稀有程度不同了。

font_name = p.font.match_font('fangsong')

actp = p.image.load("act.png")
actp = p.transform.scale(actp, (150, 50))
actX = 320
actY = 450

jyp = p.image.load("jy.png")
jyp = p.transform.scale(jyp, (150, 150))
jyX = 10
jyY = 250

fqp = p.image.load("fq.png")
fqp = p.transform.scale(fqp, (150, 150))
fqX = 165
fqY = 250

agp = p.image.load("ag.png")
agp = p.transform.scale(agp, (150, 150))
agX = 320
agY = 250

ysp = p.image.load("ys.png")
ysp = p.transform.scale(ysp, (150,150))
ysX = 475
ysY = 250

hxp = p.image.load("hx.png")
hxp = p.transform.scale(hxp, (150, 150))
hxX = 630
hxY = 250

list_num = ["敬业福","友善福","和谐福","富强福","爱国福"]
dist_nser = {"敬业福":0,"友善福":0,"和谐福":0,"富强福":0,"爱国福":0}


fag = p.font.Font(font_name,16)
def show_ag():
    texta = '爱国福'
    numa = f"{ag}"
    sag = fag.render(texta,True,(0,0,0))
    saga = fag.render(numa,True,(0,0,0))
    screen.blit(sag,(370, 400))
    screen.blit(saga,(390, 415))


def show_jy():
    textj = '敬业福'
    numj = f"{jy}"
    sjy = fag.render(textj,True,(0,0,0))
    sjya = fag.render(numj,True,(0,0,0))
    screen.blit(sjy,(60, 400))
    screen.blit(sjya,(80, 415))

def show_fq():
    textf = '富强福'
    numf = f"{fq}"
    sfq = fag.render(textf,True,(0,0,0))
    sfqa = fag.render(numf,True,(0,0,0))
    screen.blit(sfq,(215, 400))
    screen.blit(sfqa,(235, 415))


def show_ys():
    texty = '友善福'
    numy = f"{ys}"
    sys = fag.render(texty,True,(0,0,0))
    sysa = fag.render(numy,True,(0,0,0))
    screen.blit(sys,(525, 400))
    screen.blit(sysa,(545, 415))

def show_hx():
    texth = '和谐福'
    numh = f"{hx}"
    shx = fag.render(texth,True,(0,0,0))
    shxa = fag.render(numh,True,(0,0,0))
    screen.blit(shx,(680, 400))
    screen.blit(shxa,(700, 415))


a = list_num[r.randint(0,4)]
for i in range(20):
    list_num.append(a)
list_num.remove(a)
b = list_num[r.randint(0,3)]
for asd in range(15):
    list_num.append(b)
list_num.remove(b)
c = list_num[r.randint(0,2)]
for ssvf in range(7):
    list_num.append(c)
list_num.remove(c)
d = list_num[r.randint(0,1)]
for dhb in range(2):
    list_num.append(d)
list_num.remove(d)

五、进入集五福主程序

接下来就是集五福的主程序了,这里检测是否按下按钮是使用了pygame 的MOUSEBUTTONDOWN模块。

这里有人可能会问结尾的代码是什么意思,在测试的时候,发现最后集齐五福时,会有一个(最

<think>我们正在安装三个Python库:pygame,pyautogui,和pillow。根据引用信息,我们可以使用pip安装,并且可以考虑使用国内源加速安装。用户提到之前安装pygame时遇到错误,因此我们需要确保使用正确的命令。步骤:1.确认Python环境:用户有Python2和Python3,我们需要确保在Python3下安装。使用命令:`python3-mpipinstall`而不是直接使用`pip`,因为直接使用pip可能关联到Python2。2.使用国内源:例如阿里云镜像(https://mirrors.aliyun.com/pypi/simple/)来加速安装。3.分别安装三个库,也可以一起安装(但分开安装可以更清楚哪个库安装失败)。4.如果安装过程中出现问题,可以尝试先升级pip(引用3中提供了升级pip的方法):`python3-mpipinstall--upgradepip`5.安装命令格式(以pygame为例):`python3-mpipinstallpygame-ihttps://mirrors.aliyun.com/pypi/simple/`6.同样地,安装pyautogui和pillow。7.安装完成后,使用`python3-mpiplist`来检查是否安装成功。注意:如果遇到SSL错误,可以尝试使用http源(不推荐,因为不安全),或者换一个源(如清华源、豆瓣源等)。根据引用4,pillow在安装matplotlib时可能会被安装,但我们单独安装pillow也是可以的。因此,具体命令如下:</think>### 安装 Python 库指南 要安装 `pygame`、`pyautogui` 和 `pillow` 这三个 Python 库,请按以下步骤操作(**确保使用 Python3 环境**): #### 1. **升级 pip 工具(推荐)** 在安装前更新 pip 可避免兼容性问题: ```bash python3 -m pip install --upgrade pip ``` 升级后验证版本: ```bash python3 -m pip --version ``` #### 2. **使用国内镜像源安装库** 通过阿里云镜像加速安装(解决网络超时问题): ```bash # 安装 pygame python3 -m pip install pygame -i https://mirrors.aliyun.com/pypi/simple/ # 安装 pyautogui python3 -m pip install pyautogui -i https://mirrors.aliyun.com/pypi/simple/ # 安装 pillow python3 -m pip install pillow -i https://mirrors.aliyun.com/pypi/simple/ ``` #### 3. **验证安装结果** 查看已安装的库列表: ```bash python3 -m pip list ``` 若成功安装,列表中应包含: ``` pygame x.x.x PyAutoGUI x.x.x Pillow x.x.x ``` #### 4. **常见问题解决** - **SSL 证书错误**:添加 `--trusted-host` 参数: ```bash python3 -m pip install pygame -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com ``` - **权限不足**:在命令前加 `sudo`(Mac/Linux)或以管理员身份运行终端(Windows) - **依赖缺失**:参考错误提示安装系统依赖(如 `libjpeg` 等) > **关键点说明** > 使用 `python3 -m pip` 而非直接 `pip` 可确保在 Python3 环境操作[^1][^3];国内镜像源能显著提升下载速度[^2];`pillow` 是图像处理库 PIL 的兼容版本[^4]。 --- ### 相关问题 1. 如何解决 `pygame` 安装时的 "Could not find a version" 错误? 2. `pyautogui` 在不同操作系统(Windows/macOS/Linux)的依赖项有哪些差异? 3. 如何使用 `pillow` 库进行基本的图像裁剪和格式转换? [^1]: macOS系统为10.15.6 电脑中有python2 和python3版本的 要安装在python3下 [^2]: 国内源加速安装命令 [^3]: 使用 `python3 -m pip` 确保环境正确 [^4]: `pillow` 是 PIL 的替代库
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值