python制作刮刮乐惊喜揭秘呀~【趣味代码】

news2024/11/19 13:25:17

前言

大家早好、午好、晚好吖 ❤ ~

在今天,在我百般无聊的时候,突然发现一存货

于是,我把从犄角旮旯里翻出来的代码一运行

嘿,真不错~那在这里就分享给大家

素材

首先我们准备一些图片以及一首下载好的音乐(游戏音效)

效果展示

开局是这样一块灰色的

下面隐藏着什么呢~让我们动一动鼠标

是一张漂亮的动漫美女图~

是不是很像刮刮乐呀~不过刮刮乐刮开是“谢谢惠顾”以及“再来一瓶”

然我这个是不知道那个漂亮姐姐(妹妹)的图片呀~

代码展示

‘’‘导入模块’‘’

import os
import sys
import random
import pygame

‘’‘定义必要的常量’‘’

BGMPATH = 'music/bgm.mp3'
IMAGEDIR = 'pictures'
SUPPORTEXTS = ['jpg', 'png', 'bmp']
SCREENSIZE = (800, 600)
WHITE = (255, 255, 255, 27)
GRAY = (192, 192, 192)

‘’‘随机读取一张图片’‘’

def readImageRandomly():
	filenames = os.listdir(IMAGEDIR)
	filenames = [f for f in filenames if f.split('.')[-1] in SUPPORTEXTS]
	imgpath = os.path.join(IMAGEDIR, random.choice(filenames))
	return pygame.transform.scale(pygame.image.load(imgpath), SCREENSIZE)

‘’‘主程序’‘’

def main():
	pygame.init()
	pygame.mixer.init()
	pygame.mixer.music.load(BGMPATH)
	pygame.mixer.music.play(-1, 0.0)
	pygame.mouse.set_cursor(*pygame.cursors.diamond)
	screen = pygame.display.set_mode(SCREENSIZE)
	pygame.display.set_caption('刮刮乐——更多源码加🐧裙:261823976')
	surface = pygame.Surface(SCREENSIZE).convert_alpha()
	surface.fill(GRAY)
	image_used = readImageRandomly()
	while True:
		for event in pygame.event.get():
			if event.type == pygame.QUIT:
				pygame.quit()
				sys.exit(-1)
		mouse_event_flags = pygame.mouse.get_pressed()
		if mouse_event_flags[0]:
			pygame.draw.circle(surface, WHITE, pygame.mouse.get_pos(), 40)
		elif mouse_event_flags[-1]:
			surface.fill(GRAY)
			image_used = readImageRandomly()
		screen.blit(image_used, (0, 0))
		screen.blit(surface, (0, 0))
		pygame.display.update()

‘’‘run’‘’

if __name__ == '__main__':
	main()

好了,今天的分享就到这喽,完整源码及视频讲解下方名片自取即可~

当然了,你也可以保存足够多的图片,然后把这个程序打包~

朋友小孩一起玩哦~解密惊喜大礼包嘛

尾语 💝

我给大家准备了一些资料,包括:

2022最新Python视频教程、Python电子书10个G

(涵盖基础、爬虫、数据分析、web开发、机器学习、人工智能、面试题)、Python学习路线图等等

直接在文末名片自取即可!

有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง

喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/69826.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ 数学与算法系列之认识格雷码

1. 前言 程序中所涉及到的任何数据,计算机底层均需转换成二进制数值后方可存储,这个过程也称为编码。反之,把底层二进制数据转换成应用数据称为解码, 不同的数据类型需要不同的编(解)码方案,如…

论文投稿指南——中国(中文EI)期刊推荐(第2期)

🚀 EI是国际知名三大检索系统之一,在学术界的知名度和认可度仅次于SCI!🎄🎈 【前言】 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊。其中&#xf…

基于jsp+ssm闲置图书分享平台系统-计算机毕业设计

项目介绍 本闲置图书管理系统主要包括系统图书交换模块、图书分享管理模块、图书借阅管理模块、新闻公告管理模块、图书类别管理、图书信息管理、登录模块、和退出模块等多个模块,采用目前最流行的B/S结构和java中流行的MVC三层设计模式和eclipse编辑器、MySQL 数据库设计并实…

代码提速100倍,怎么实现的?

众所周知,Python的简单和易读性是靠牺牲性能为代价的 尤其是在计算密集的情况下,比如多重for循环。不过现在,大佬胡渊鸣说了: 只需import 一个叫做“Taichi”的库,就可以把代码速度提升100倍! 不信&…

VTK - vtkPolyData数据的Remesh

欢迎加入我的VTK社区 雪易VTK社区-CSDN社区云 前言:在研究3-matic软件中smooth Edge和Local Smoothing功能时,先对数据的网格进行了重新的划分,即3-matic软件中的Remesh功能。本博文主要针对Remesh进行展开。 目录 网格质量 vtkMeshQuali…

【JavaScript】ESLint 深入浅出

▒ 目录 ▒🛫 导读需求开发环境1️⃣ 初体验安装lint配置.eslintrc.js忽略文件package.json中添加eslint脚本2️⃣ vscode中使用插件安装作用3️⃣ 规避报错问题行添加注释问题文件开头添加注释修改配置文件.eslintrc.js4️⃣ 常见错误汇总Cannot read property nam…

站在巨人的肩膀上,用Node+ChatGPT模块实现一个接口

目录 前言 准备工作 起步 写在最后 前言 蹭一下最近比较火的人工智能ChatGPT的热度,最近看到许多小伙伴都在调戏ChatGPT,看到这我就坐不住了,这种事怎么能少了我,于是闲(划)暇(水&#xff0…

什么事Jupyter Notebook?

Jupyter Notebook是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果。 简而言之,Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也…

【javascript】 初见浏览器端日志系统 log4js、bunyan

▒ 目录 ▒🛫 导读需求开发环境1️⃣ log4js配置实现2️⃣ bunyan自定义MyRawStream实现🛬 文章小结📖 参考资料🛫 导读 需求 用习惯了python、java的日志系统,现在使用console.log等览器端js接口打印日志&#xff0c…

m基于FPGA的多级抽取滤波器组verilog设计,包括CIC滤波,HB半带滤波以及DA分布式FIR滤波

目录 1.算法描述 2.仿真效果预览 3.verilog核心程序 4.完整FPGA 1.算法描述 数字下变频中的低通滤波器是由多级抽取滤波器组实现的。信号的同相分量和正交分量再分别经由积分梳状滤波器(CIC)、半带滤波器(HB)和有限长单位脉冲响应(FIR)滤波器构成的多级抽取滤波器组进行滤波…

vcenter开机报错activating swap-devices in /etc/fstab

问题:昨天IDC机房一台存储断电了,恰巧vcenter在这台存储上,重启存储后再重启vcenter报了以下错误: 参考文档: https://www.virtualizestuff.com/2015/10/29/vcsa_fstab_failed/ https://kb.vmware.com/s/article/2069…

政企数智办公潮水里的融云「答卷」

在这张集合了党政机关、金融保险、交通、能源电力等中大型组织复杂办公需求的高难度答卷上,融云在扎实耐打的通信底层之上,保持灵活的身段和强大的进化能力,稳定而轻盈,在不断变化的环境中正在成为确定性本身。 作者|皮爷 出品…

手把手教你打造一款个人专属Android桌面

实现方式两种 1.从头到尾写一个apk然后把系统的属性加上去,然后启动的时候默认就指定到这个apk的包名,他就启动, 2.我们基于Androidlauncher3的源码去做一个定制化的修改 分析一下这两种的区别, 自定义,要有丰富的…

使用SuperMap iDesktopX如何去掉“耗子尾巴”

在项目中,通过会遇到一些错误的矢量数据,比如“耗子尾巴”。什么是“耗子尾巴呢”,我们所说的“耗子尾巴图斑”,是不规则图斑的一种形态。规则的图斑,应该形态接近圆、矩形、菱形或凸多边形的图斑。自然界中多数图斑应…

[附源码]计算机毕业设计JAVA政府项目管理平台

[附源码]计算机毕业设计JAVA政府项目管理平台 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybati…

ASEMI整流桥MB10F、MB6S、ABS10参数对比

编辑-Z 封装和参数是工程师在选型整流桥时的两大重要依据,下面我们就把比较常见的ASEMI整流桥MB10F、MB6S、ABS10参数做个对比,方便大家选型。 整流桥MB10F参数: 型号:MB10F 封装:MBF-4 最大重复峰值反向电压&…

Redis - Linux下载与安装

1.通过apt方式安装Redis 在终端中输入,如下命令进行安装: # 更新软件源 sudo apt update # 安装redis-server sudo apt install redis-serverredis服务安装完成后,服务将自动启动。通过如下命令查看服务进程是否启动: ps aux |…

快速上手Django(八) -Django之 统一异常、Response处理

文章目录快速上手Django(八) -Django之 统一异常、Response处理一、统一Response处理二、统一异常处理1. 需求背景2. Django、drf统一异常处理3. Django、drf异常处理基础4. 纯django场景下5. 【重要】使用drf场景下,实现思路编写自定义异常处理方法在settings/dev.…

高端前端彻底搞定this指向(详解)

这篇文章只告诉你三件事情,this,this,还TM的是this。 1,this在javascript中是可有可无的 大家在学习javascript的时候,肯定或多或少看到过了很多代码。其中肯定会发现this的身影。我们知道他是代表的指向,可是让人迷惑的是this的…

Scheduled定时任务异步执行

1.使用配置 我在使用SpringBoot配置定时任务的过程中,使用Scheduled配置了多个定时任务,但是在项目启动的时候每次只会启动一个定时任务,只好搜索一波,直到看到了 ThreadPoolTaskScheduler的源码,才发现默认开启的线程数是 1 Configuration public class ScheduledPoolConfi…