Python精选200Tips:166-170

实战项目

        • P166--测试记忆力的益智游戏
          • 技术栈:5分钟内通关
        • P167--好用的中英文翻译器
          • 技术栈:googletrans的使用
        • P168--图片压缩为字符串
          • 技术栈:更高级的加密算法
        • P169--电影推荐系统
          • 技术栈:协同过滤的基本实现
        • P170--Python网页测试题
          • 技术栈:Flask的使用

运行系统:macOS Sequoia 15.0
Python编译器:PyCharm 2024.1.4 (Community Edition)
Python版本:3.12

往期链接:

1-56-1011-2021-3031-4041-50
51-60:函数61-70:类71-80:编程范式及设计模式
81-90:Python编码规范91-100:Python自带常用模块-1
101-105:Python自带模块-2106-110:Python自带模块-3
111-115:Python常用第三方包-频繁使用116-120:Python常用第三方包-深度学习
121-125:Python常用第三方包-爬取数据126-130:Python常用第三方包-为了乐趣
131-135:Python常用第三方包-拓展工具1136-140:Python常用第三方包-拓展工具2

Python项目实战

141-145146-150151-155156-160161-165
P166–测试记忆力的益智游戏
技术栈:5分钟内通关
import random
import pygame
import sys
from pygame.locals import *# 常量定义
Frame_Speed = 20
Window_Width = 640
Window_Height = 480
Speed_Reveal = 3
Box_Size = 40
Gap_Size = 10
Border_Width = 10
Border_Height = 7# 检查棋盘的方块数是否为偶数
assert (Border_Width * Border_Height) % 2 == 0, '棋盘需要有偶数的方块以形成配对。'
X_margin = int((Window_Width - (Border_Width * (Box_Size + Gap_Size))) / 2)
Y_margin = int((Window_Height - (Border_Height * (Box_Size + Gap_Size))) / 2)# 颜色定义
BackGround_color = (200, 200, 255)  # 浅蓝色背景
Box_Color = (255, 255, 255)          # 白色方块
HighLight_Color = (255, 215, 0)      # 金色高亮
Light_BackGround_color = (93, 46, 100)# 形状定义
CIRCLE = 'circle'
SQUARE = 'square'
DIAMOND = 'diamond'
LINES = 'lines'
OVAL = 'oval'# 修改为更丰富的颜色和形状
All_Colors = [(255, 0, 0),      # 红色(0, 255, 0),      # 绿色(0, 0, 255),      # 蓝色(255, 255, 0),    # 黄色(255, 128, 0),    # 橙色(128, 0, 255),    # 紫色(0, 255, 255)     # 青色
]
All_Shapes = [CIRCLE, SQUARE, DIAMOND, LINES, OVAL]# 检查形状和颜色是否足够
assert len(All_Colors) * len(All_Shapes) * 2 >= Border_Width * Border_Height, "棋盘对于定义的形状/颜色来说太大。"# 主函数
def main():global Frame_Speed_Clock, DIS_PlaySurfpygame.init()Frame_Speed_Clock = pygame.time.Clock()DIS_PlaySurf = pygame.display.set_mode((Window_Width, Window_Height))X_mouse = 0Y_mouse = 0pygame.display.set_caption('记忆游戏')Board = Randomized_Board()Boxes_revealed = GenerateData_RevealedBoxes(False)first_Selection = NoneDIS_PlaySurf.fill(BackGround_color)Start_Game(Board)while True:mouse_Clicked = FalseDIS_PlaySurf.fill(BackGround_color)Draw_Board(Board, Boxes_revealed)for event in pygame.event.get():if event.type == QUIT or (event.type == KEYUP and event.key == K_ESCAPE):pygame.quit()sys.exit()elif event.type == MOUSEMOTION:X_mouse, Y_mouse = event.poselif event.type == MOUSEBUTTONUP:X_mouse, Y_mouse = event.posmouse_Clicked = Truex_box, y_box = Box_Pixel(X_mouse, Y_mouse)if x_box is not None and y_box is not None:if not Boxes_revealed[x_box][y_box]:Draw_HighlightBox(x_box, y_box)if not Boxes_revealed[x_box][y_box] and mouse_Clicked:Reveal_Boxes_Animation(Board, [(x_box, y_box)])Boxes_revealed[x_box][y_box] = Trueif first_Selection is None:first_Selection = (x_box, y_box)else:icon1shape, icon1color = get_Shape_Color(Board, first_Selection[0], first_Selection[1])icon2shape, icon2color = get_Shape_Color(Board, x_box, y_box)if icon1shape != icon2shape or icon1color != icon2color:pygame.time.wait(1000)  # 等待1000毫秒 = 1秒Cover_Boxes_Animation(Board, [(first_Selection[0

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

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

相关文章

Ubuntu 16.04安装填坑记录

一. 问题描述: (1)Ubuntu 16.04使用USB启动盘安装时,出现"try ubuntu without installation"或“install ubuntu”选择,Enter选择安装后,显示器黑屏无任何显示。 原因分析: 显示黑…

Python电能质量扰动信号分类(一)基于LSTM模型的一维信号分类

引言 本文基于Python仿真的电能质量扰动信号,先经过数据预处理进行数据集的制作和加载,然后通过Pytorch实现LSTM模型对扰动信号的分类。Python仿真电能质量扰动信号的详细介绍可以参考下文(文末附10分类数据集): Pyth…

8.11Zero Crossing Detection (零交叉检测)

基本概念 零交叉检测是一种基于二阶导数的边缘检测方法,它通过查找二阶导数过零点来定位边缘。 注意: OpenCV没有直接提供这种检测方法,但可以通过结合其他函数来实现。 在OpenCV中,基于C的Zero Crossing Detection(零交叉检测&…

项目第一弹:RabbitMQ介绍

RabbitMQ介绍 一、前言1. 回顾生产者消费者模型2.忙闲不均与负载均衡3.改造线程池使其支持负载均衡4.MQ的引入 二、MQ的介绍1.应用/模块解耦,且提高容错性2.异步处理3.流量削峰填谷4.分布式事务1.两阶段提交协议(2PC协议)2.事务消息&#xff…

《动手学深度学习》笔记2.1——神经网络从基础→进阶 (层和块 - 自定义块)

目录 0. 前言 原书正文(第五章) 第五章 - 第一节 - 层和块 - 自定义块 1. Sequential() PyTorch高级API 2. MLP() 无传入参数 3. MySequential() 传入任意层(块) 4. FixedHiddenMLP() 无传入参数-固定隐藏层 5. NestMLP() 传入嵌套块-多次嵌套 …

【目标检测】隐翅虫数据集386张VOC+YOLO

隐翅虫数据集:图片来自网页爬虫,删除重复项后整理标注而成 数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):386 标注…

C++核心编程和桌面应用开发 第五天(new delete malloc 静态成员 静态成员函数 单例)

目录 1.new运算符 1.1开批数组 2.delete运算符 3.malloc和new的区别 4.万能指针接收new对象 5.静态成员 6.静态成员函数 7. 单例 7.1概念 7.2常见场景 1.new运算符 C中用new进行动态内存分配,new会在调用构造函数之前,成功进行内存分配&#x…

利用F.interpolate()函数进行插值操作

函数简介 功能: 利用插值方法,对输入的张量数组进行上\下采样操作,换句话说就是科学合理地改变数组的尺寸大小,尽量保持数据完整。 torch.nn.functional.interpolate(input, sizeNone, scale_factorNone, modenearest, align_c…

RabbitMQ是什么?RabbitMQ简介

一:技术背景 假如我们有一个支付服务,支付服务的业务逻辑是:首先支付扣减余额,更新支付单状态,更新订单状态,发短信,给这个用户增加积分。在这个场景下,如果我们使用同步调用通信&am…

vscode将c++项目打包exe进行反汇编练习

vscode将c&c项目打包成控制台exe全过程,进行c反汇编练习,反汇编只有不断的练习才能巩固、积累经验。 一、打包exe 创建新项目,选择c,Windows桌面向导 直接点击创建 直接点确定 直接点击运行即可,可以看到我的exe…

15 跨组件通信依赖注入provide和inject

Provide / Inject 通常,当我们需要从父组件向子组件传递数据时,我们使用 props。想象一下这样的结构:有一些深度嵌套的组件,而深层的子组件只需要父组件的部分内容。在这种情况下,如果仍然将 prop 沿着组件链逐级传递…

ROS2 技术及分布式介绍

PC端开发环境搭建 WSL环境搭建 https://www.guyuehome.com/46574 In Windows 11 builds that support wslg: 1. Open up powershell and enter wsl --install ROS2系统安装 方法一 • 设置编码 Bash $ sudo apt update && sudo apt install loca…

EffcientNetV2(2021):更快、更强、效率更高的EffcientNet!

EffcientNetV2: Smaller Models and Faster Training EfficientNetV2:更小的模型和更快的训练 论文地址: https://arxiv.org/abs/2104.00298 本文介绍了 EfficientNetV2,这是一个新的卷积网络系列,与以前的模型相比,它…

HDFS_API文件和文件夹

代码: Beforepublic void init() throws URISyntaxException, IOException {URI uri new URI("hdfs://master:9000");// 创建一个配置文件Configuration entries new Configuration();// 获取到了客户端对象 // entries.set("dfs.replicat…

【嵌入式linux开发】SPI设备文件读取ICM-40609D传感器

【嵌入式linux开发】SPI设备文件操作ICM-40609D传感器 前言一、数据手册浅读二、linux系统下使用SPI设备文件操作ICM-40609-D三、ros1发布imu数据3.1、创建ros1工作空间3.2、数据发布节点代码 前言 在本篇博客中,将从ICM-40609-D传感器的数据手册出发,简…

公安局软件管理平台建设方案和必要性,论文-3-———未来之窗行业应用跨平台架构

三、平台功能设计 四、技术架构 1. 前端界面 - 采用简洁、易用的设计风格,适应不同终端设备的访问。 - 基于 HTML5、CSS3 和 JavaScript 构建。 2. 后端服务 - 选择主流的 Web 开发框架,如 未来之窗跨平台架构,VUE。 - 数据库…

Github Webhook触发Jenkins自动构建

1.功能说明 Github Webhook可以触发Jenkins自动构建,通过配置Github Webhook,每次代码变更之后(例如push操作),Webhook会自动通知Jenkins服务器,Jenkins会自动执行预定义的构建任务(如Jenkins …

Redis-认识与应用(从ChatGpt的角度看Redis)

问题:您好,我的项目是在线教育平台,用springboot3搭建,我现在想学redis,请问redis能在我的项目中有什么应用场景呢 问题:就是我项目能应用上具体什么场景,请给我例子,并给我具体代码…

springboot整合openfeign

文章目录 准备一、引入必要依赖二、写一个feign client并暴露到注册中心2.1 client2.2 开启Feign客户端功能 三、别的服务引入IProductClient并调用方法3.1 建一个order-service,引入IProductClient所在模块3.2 注入IProductClient,并调用方法 四、启动服…

JAVA基本简介(期末)

1、JDK JRE JVM (1)JDK JAVA标准开发包,提供了编译、运行JAVA程序所需的各种工具和资源,包括JAVA编译器、JAVA运行时的环境,及常用的JAVA类库等 (2)JRE JAVA运行环境,用于解释执行JA…