俄罗斯方块游戏设计与实现(Python)

目录
第一章 绪论 1
1.1 任务概述 1
1.1.1 软件功能 1
1.1.2 运行环境 1
1.2 需求分析 3
1.2.1 游戏界面 3
1.2.2 菜单操作 3
1.2.3 游戏操作 3
1.3 设计目的 4
第二章 相关技术及开发工具 5
2.1 python介绍 5
2.2 python发展历史 6
2.3 python特点 6
2.4 python开发环境构建 7
第三章 概要设计 8
3.1 程序流程 9
3.1.1 程序主流程 9
3.1.2 游戏视图 10
3.1.3 游戏控制流程 10
3.2 模块说明 11
3.2.1 游戏模块 11
3.2.2 辅助模块 12
3.3 重要数据 12
3.3.1 存储型 12
3.3.2 控制型 12
第四章 详细设计 13
4.1 界面设计 13
4.1.1 窗口创建 13
4.1.2 菜单设计 13
4.1.3 区域着色 13
4.1.4 方块设计 13
4.2 常量变量 13
4.2.1 常量. 13
4.2.2 变量. 14
4.3 重要函数 14
4.3.1 游戏状态 14
4.3.2 游戏控制 14
4.4 重要算法 14
4.4.1 判定 14
4.4.2 变换 14
第五章 调试与测试 15
5.1 调试分析 15
5.1.1 问题与解决 15
5.1.2 性能分析 15
5.1.3 程序不足 15
5.2 测试结果 16
5.2.1 游戏截图 16
第六章 结论 19
参考文献 20
第一章绪论
1.1任务概述
1.1.1软件功能
该俄罗斯方块是有Python编写而成的。它具有对游戏的正常操作,可以控制方块
下落位置、下落时改变方向,以及对方块的直接下落。该游戏分左右两个界面,左边显示游戏的运行状态,右边显示游戏下一个即将出现的方块,以及游戏的等级类别和当前分数、消过得方块行数等。
1.1.2运行环境
程序运行于Anoconda,将Anoconda安装于Windows系统上。然后在Anoconda Prompt 上安装pygame组件。
Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。Anaconda利用工具/命令conda来进行package和environment的管理,并且已经包含了Python和相关的配套工具。
这里先解释下conda、anaconda这些概念的差别。conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。包管理与pip的使用类似,环境管理则允许用户方便地安装不同版本的python并可以快速切换。Anaconda则是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等等,所以也称为Python的一种发行版。其实还有Miniconda,顾名思义,它只包含最基本的内容——python与conda,以及相关的必须依赖项,对于空间要求严格的用户,Miniconda是一种选择。
进入下文之前,说明一下conda的设计理念——conda将几乎所有的工具、第三方包都当做package对待,甚至包括python和conda自身!因此,conda打破了包管理与环境管理的约束,能非常方便地安装各种版本python、各种package并方便地切换。
Anaconda的下载页参见官网下载,Linux、Mac、Windows均支持。
安装时,会发现有两个不同版本的Anaconda,分别对应Python 2.7和Python 3.5,两个版本其实除了这点区别外其他都一样。后面我们会看到,安装哪个版本并不本质,因为通过环境管理,我们可以很方便地切换运行时的Python版本。(由于我常用的Python是2.7和3.4,因此倾向于直接安装Python 2.7对应的Anaconda)
下载后直接按照说明安装即可。这里想提醒一点:尽量按照Anaconda默认的行为安装——不使用root权限,仅为个人安装,安装目录设置在个人主目录下(Windows就无所谓了)。这样的好处是,同一台机器上的不同用户完全可以安装、配置自己的Anaconda,不会互相影响。
对于Mac、Linux系统,Anaconda安装好后,实际上就是在主目录下多了个文件夹(/anaconda)而已,Windows会写入注册表。安装时,安装程序会把bin目录加入PATH(Linux/Mac写入/.bashrc,Windows添加到系统变量PATH),这些操作也完全可以自己完成。以Linux/Mac为例,安装完成后设置PATH的操作是
在这里插入图片描述

将anaconda的bin目录加入PATH,根据版本不同,也可能是~/anaconda3/bin

echo ‘export PATH=“~/anaconda2/bin:$PATH”’ >> ~/.bashrc

更新bashrc以立即生效

source ~/.bashrc
配置好PATH后,可以通过which conda或conda --version命令检查是否正确。假如安装的是Python 2.7对应的版本,运行python --version或python -V可以得到Python 2.7.12 :: Anaconda 4.1.1 (64-bit),也说明该发行版默认的环境是Python 2.7。
Pygame是跨平台Python模块,专为电子游戏设计,包含图像、声音。建立在SDL基础上,允许实时电子游戏研发而无需被低级语言(如机器语言和汇编语言)束缚。包含图像、声音。
Pygame建立在SDL基础上,允许实时电子游戏研发而无需被低级语言(如机器语言和汇编语言)束缚。基于这样一个设想,本文转载自http://www.biyezuopin.vip/onews.asp?id=13886所有需要的游戏功能和理念都(主要是图像方面)都完全简化为游戏逻辑本身,所有的资源结构都可以由高级语言提供,如Python。

1.2需求分析
1.2.1 游戏界面

在这里插入图片描述

图1.1
1.2.2 菜单操作
打开Anoconda Prompt ,安装pygame组件。安装完成后就会显示 如图5.1所示的界面。点击Play!,将进入游戏,点击Quit将退出程序。
1.2.3 游戏操作
进入游戏后,可以用键盘上下左右键控制方块的下落方向,速度。当选好下落的位置后,按下空格键将快速下降到需要填充的地方。当游戏中方块积累的和游戏最上面相平时,此局游戏将结束。
1.3设计目的
这款游戏设计的主要目的是为了应用自己已学过的编程语言更好的去应运到实际中,同时对小游戏的开发有助于提升自己的编程能力,还能更好的找出自身存在的一些缺陷问题,加以及时的弥补。这款游戏也能供玩家适当缓解压力,提高思维能力和反应能力。

import os

scorefile = os.path.join(os.path.dirname(__file__), ".highscores")

def load_score():
    """ Returns the highest score, or 0 if no one has scored yet """
    try:
        with open(scorefile) as file:
            scores = sorted([int(score.strip())
                             for score in file.readlines()
                             if score.strip().isdigit()], reverse=True)
    except IOError:
        scores = []

    return scores[0] if scores else 0

def write_score(score):
    assert str(score).isdigit()
    with open(scorefile, 'a') as file:
        file.write("{}n".format(score))

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>