Python 实现俄罗斯方块源码分享(Pygame 版)
功能包括方块移动、旋转、加速下落、一键落底、消行计分、游戏结束判定。1、核心逻辑说明方块数据:总共有 7 种游戏方块,每种方块用二维列表保存,列表中 1 代表方块占用的格子,0 代表空白位置。碰撞判断:方块每次移动前做校验,既要判断会不会跑出左右和底部边界,也要检查是否撞上已经堆好的方块,一旦有冲突就不允许这次移动。方块旋转:利用矩阵反转、转置的方式实现方块顺时针旋转 90 度。旋转完成后如果检测到碰撞,就放弃本次旋转,方块维持原来形态。方块落地:方块向下移动碰到障碍物无法继续下落,就把这个方块的数据写入游戏网格数组,将方块固定在游戏区域内。消除整行:逐行扫描游戏网格,当某一行全部被方块填满,就删除这一行。该行删掉后,上面所有的行会向下下落,在最顶部补充空行,同时累计游戏分数。游戏结束判断:生成新方块的瞬间就发生碰撞,说明方块已经堆积到游戏区域的最顶端,判定游戏结束。2、操作按键功能← / →方块左右移动↑方块顺时针旋转↓加速向下移动一格空格直接落到底部关闭窗口退出游戏3、需安装依赖-pygamepip install pygame4、附上完整可运行代码import pygame import random # -------------------------- 常量配置 -------------------------- BLOCK_SIZE = 30 # 每个方块像素大小 COLS = 10 # 游戏区域列数 ROWS = 20 # 游戏区域行数 WINDOW_WIDTH = BLOCK_SIZE * COLS + 200 # 总窗口宽度(右侧预留分数区域) WINDOW_HEIGHT = BLOCK_SIZE * ROWS # 颜色定义 R G B BLACK = (0, 0, 0) WHITE = (255, 255, 255) GRAY = (40, 40, 40) RED = (255, 0, 0) CYAN = (0, 255, 255) BLUE

相关新闻

Linux 硬件信息查询:dmidecode 命令完整详解(BIOS/CPU/ 内存 / 主板实战)

Linux 硬件信息查询:dmidecode 命令完整详解(BIOS/CPU/ 内存 / 主板实战)

Linux 学习资料 https://pan.baidu.com/s/1A6qqBk2ViE_Le2cQjSowkQ?pwd7uz8 1. 命令简介 dmidecode 是一个用于在 Linux 系统下获取硬件信息的命令行工具。它通过读取并解码系统 DMI(Desktop Management Interface,桌面管理接口)数据库中…

2026/9/28 18:32:31 阅读更多 →
Linux 用户与用户组管理:从用户分类到核心配置文件

Linux 用户与用户组管理:从用户分类到核心配置文件

1. 引言 在 Linux 里,用户与用户组是整个权限体系的基础。无论是系统运维人员还是开发人员,都需要掌握用户类型划分、用户组工作逻辑,以及配套的核心配置文件。本文梳理 Linux 的用户分类、用户组相关机制,同时对 /etc/passwd 和 /etc/group 两个关键配置文件做详细解读。…

2026/10/5 3:36:02 阅读更多 →
深夜惊魂!网站突然显示“建设中”该怎么办?站长紧急排查与SEO自救指南

深夜惊魂!网站突然显示“建设中”该怎么办?站长紧急排查与SEO自救指南

那是凌晨两点三十分,手机屏幕发出的微弱蓝光在漆黑的卧室里显得格外刺眼。我正睡得迷迷糊糊,突然被一阵急促的心跳声惊醒——不是心脏出了问题,而是我作为站长的职业本能。就在刚才,我的闹钟程序发来了报警邮件:“您的主域名访问状态异常:503 Service Unavailable”。我猛…

2026/10/3 21:28:38 阅读更多 →

最新新闻

读懂MSDS:化学品安全说明书基础阅读指南

读懂MSDS:化学品安全说明书基础阅读指南

广东大小化工有限公司在化工原料使用、储存、转运的全流程中,MSDS,也就是化学品安全技术说明书,是最基础、最权威的参考文件。不少实验室、仓储管理人员拿到MSDS文档,面对十几项内容,不清楚哪些信息需要重点关注。本文…

2026/10/7 8:03:58 阅读更多 →
Harmonist供应链完整性设计:SHA256校验如何拦截AI智能体投毒

Harmonist供应链完整性设计:SHA256校验如何拦截AI智能体投毒

Harmonist供应链完整性设计:SHA256校验如何拦截AI智能体投毒 【免费下载链接】harmonist Portable AI agent orchestration with mechanical protocol enforcement. 186 agents, zero runtime dependencies. 项目地址: https://gitcode.com/gh_mirrors/ha/harmoni…

2026/10/7 8:03:58 阅读更多 →
Windows下cudaMallocHost为何消耗显存?WDDM机制与规避策略

Windows下cudaMallocHost为何消耗显存?WDDM机制与规避策略

1. 一个让显存凭空消失的诡异现象如果你在 Windows 上做 CUDA 开发,尤其是涉及视频处理、深度学习推理或者大规模图像缓存这类需要频繁在主机内存和显存之间搬运数据的场景,大概率绕不开cudaMallocHost这个 API。它的官方定位很清晰:分配页锁…

2026/10/7 8:03:57 阅读更多 →
宏定义与位运算使用

宏定义与位运算使用

1 #define WORD_LO(xxx) ((byte)((word)(xxx) & 255))2 #define WORD_HI(xxx) ((byte)((word)(xxx) >> 8))一个字由2字节组成。因此 WORD_LO(xxx) 取参数 xxx 的低8位, WORD_HI(xxx) 取参数 xxx 的高8位。#define ARR_SIZE(a) (sizeof(a)) / sizeof(a…

2026/10/7 8:03:57 阅读更多 →
华硕新款34寸带鱼屏发布:三模高刷屏解锁PG幸运捣蛋鬼

华硕新款34寸带鱼屏发布:三模高刷屏解锁PG幸运捣蛋鬼

华硕更新TUF Gaming系列,推出新款VG34WQML5F超宽曲面电竞显示器,采用34英寸21:9 VA面板,1500R曲率,支持WHD 420Hz、WFHD 320Hz和WQHD 260Hz三种模式,玩家可根据不同场景自由切换。搭配PG幸运捣蛋鬼等PG游戏时&#xff…

2026/10/7 8:03:57 阅读更多 →
做全屋定制10年+,我把最常被忽略的几点说清楚

做全屋定制10年+,我把最常被忽略的几点说清楚

关键词:做全屋定制10年、全屋定制企业、立心木作 一、开头先交个底 我做全屋定制这行十来年,从量尺、画图、盯工厂到跟安装,基本每个环节都干过。 这行说复杂也复杂,说简单也简单——大部分翻车的单子,问题不在工艺&am…

2026/10/7 8:02:56 阅读更多 →

日新闻

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:01:58 阅读更多 →
用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:02:00 阅读更多 →
芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:02:00 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 7:15:40 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 5:29:09 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 6:26:51 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 8:21:32 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 4:21:51 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 1:18:13 阅读更多 →