PyGame的俄罗斯方块设计带报告及演示视频python

名称:PyGame的俄罗斯方块设计带报告及演示视频python

软件:PyCharm

语言:python

该俄罗斯方块是有Python编写而成的。它具有对游戏的正常操作,可以控制方块

下落位置、下落时改变方向,以及对方块的直接下落。该游戏分左右两个界面,左边显示游戏的运行状态,右边显示游戏下一个即将出现的方块,以及游戏的等级类别和当前分数、消过得方块行数等。

代码下载:

PyGame的俄罗斯方块设计带报告及演示视频python_计算机代码资源下载

设计报告:

俄罗斯方块游戏报告.docx

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)函数,当玩家在键盘上按上下左右不同的键时,游戏界面的方块会有所变化。


 

  • 20
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值