名称:PyGame的俄罗斯方块设计带报告及演示视频python
软件:PyCharm
语言:python
该俄罗斯方块是有Python编写而成的。它具有对游戏的正常操作,可以控制方块
下落位置、下落时改变方向,以及对方块的直接下落。该游戏分左右两个界面,左边显示游戏的运行状态,右边显示游戏下一个即将出现的方块,以及游戏的等级类别和当前分数、消过得方块行数等。
代码下载:
PyGame的俄罗斯方块设计带报告及演示视频python_计算机代码资源下载
设计报告:
1. 工程文件
2. 程序文件
3. 程序运行
一.1 模块说明
一.1.1 游戏模块
一.1.2 辅助模块
通过图形工厂随机产生方块的某种状态,这里运用了工厂设计模式,这种设计模式是为了实现高内聚低耦合而存在的,这种设计模式的通俗解释就是:你想要一个产品,你需要让工厂给你生产一个,你要告诉工厂你要生产什么产品,就把你需要生产的这个产品当做参数传给工厂类的生产产品的方法,然后根据你传进来的产品,而决定工厂人生产什么产品,产生出来产品后,最后要返回您要的这个东西。
一.2 重要数据
一.2.1 存储型
最高分Highscore(记录玩家最高得分)、Lines(显示本局游戏所消除的行数总和)、Score(显示本局游戏的所得分数)
一.2.2 控制型
等级Levels(根据不同等级调整游戏的不同速度)。
第二章 详细设计
二.1 界面设计
二.1.1 窗口创建
定义矩阵的宽、高、边框宽度、块大小然后计算出页面的宽度、高度。
页面宽度:
WIDTH = MATRIX_WIDTH*BLOCKSIZE + BORDERWIDTH*2 + MATRIS_OFFSET*2 + LEFT_MARGIN
页面高度:
HEIGHT = (MATRIX_HEIGHT-2)*BLOCKSIZE + BORDERWIDTH*2 + MATRIS_OFFSET*2
可见矩阵宽度:
VISIBLE_MATRIX_HEIGHT = MATRIX_HEIGHT - 2
二.1.2 菜单设计
定义了Menu类,定义main(self, screen)函数,设置“Play!”“Quit”两个菜单,对其进行绘制,着色,当点击“Play!”时,游戏开始;点击“Quit”时,游戏结束。定义construct_highscoresurf(self)来显示游戏最高得分。
二.1.3 区域着色
定义fo_surf (self)函数,有矩阵和矩阵的边框进行着色。定义construct_nightmare(size)函数,对菜单背景进行随机颜色设置。
二.1.4 方块设计
方块共设计了7中形状,分别设置不同的颜色,分别为“(blue)一字形”、“(red)Z字形”、“(green)反Z字形”、“(pink)反T字形”、“(orange)7字形”、“(cyan)反7字形”、“(yellow)田字形”。
二.2 常量变量
二.2.1 常量.
页面的大小,游戏行列格数目,不同方框的颜色是不变的。
二.2.2 变量.
随机下落的方块形状,游戏的等级Level、消掉的行数Lines 、游戏的得分Score,最高分数Highscore。
二.3 重要函数
二.3.1 游戏状态
定义renderpair(text, val)函数,当游戏行数消除时,右边的Score、Level、Lines、Combo都有一定的变化。
二.3.2 游戏控制
定义了Menu类,定义main(self, screen)函数,设置“Play!”“Quit”两个菜单,对其进行绘制,当点击“Play!”时,游戏开始;点击“Quit”时,游戏结束。
二.4 重要算法
二.4.1 判定
定义lock_tetromino(self)函数,当游戏“死亡”之后,所有方块都会被记录,并且清除所有方块,会回到菜单界面。
二.4.2 变换
定义了request_movement(self, direction)函数,当玩家在键盘上按上下左右不同的键时,游戏界面的方块会有所变化。