Python语言程序设计课程论文——Python小游戏

摘要

Pygame 是一组用来开发游戏软件的 Python 程序模块,此项目就是导入Pygame模块来设计开发简单拼图游戏,引入Random模块,随机打乱拼图次数、拼图块坐标、拼图图片,将图像分为m×n个矩形块,并将图像右下角的矩形块替换为空白块后,将这些矩形块随机摆放成原图像的形状。游戏目标为通过移动非空白块将随机摆放获得的图像恢复成原图像的模样,且规定移动操作仅存在于非空白块移动到空白块。
关键字:Pygame、Python、Random

Abstract

Pygame is a set of Python programs to develop game software module, this project is to import Pygame module to design a simple puzzle game, the introduction of the Random module, Random disturb jigsaw puzzle, jigsaw puzzle piece of coordinates, image, the image is divided into m * n rectangle block, and replaced with blank blocks of the image at the bottom right corner rectangle, the rectangle block randomized into the shape of the original image.The goal of the game is to restore the image obtained by randomly placing the non-blank block to the original image by moving the non-blank block, and the movement operation only exists when the non-blank block is moved to the blank block.
Keywords: Pygame, Python, Random

第1章 引言

1.1 课题背景

拼图游戏是家喻户晓的益智类小游戏,不管是哪个年龄段都有它的爱好者,随着社会的发展,生活节奏越来越快,人们的压力也越来越大,通过玩休闲益智类游戏解压,成为忙碌的都市人们的不二选择。拼图游戏就是其中很有代表性的一种,它可以使人在休闲娱乐的同时锻炼记忆力、观察力。

1.2 目的和意义

选择这个拼图游戏作为课题,一方面是想学习和掌握Pygame的课外知识,另一方面可增加学习的趣味性和培养对此课程的兴趣。相对国外对Pygame研究的热火朝天,国内则显得比较冷淡,甚至商场上都没有一本完整地介绍Pygame框架的指导书,希望通过这次的游戏设计,使得更多人投入研究Pygame框架中。

1.3 国内外的发展现状

96,97年的国产游戏产品是单机版的游戏,在当时的市场上虽然品质和档次不如外来产品,但也占有一定的市场,例如《仙剑奇侠传》、《三国志》等系列带有鲜明中国特色与气息的游戏在市场上掀起了一波高潮。1998年联众与中国游戏中心等老牌的游戏平台的推出标志着电脑游戏在中国的开荒与生根。但是到了1999年在没有形成主流产品的情况下,政策不明朗,包括开发资金出现问题等原因国产游戏开始走下坡路。一直到了2000年,网络游戏问世并且很快流行起来我国的游戏行业才又渐渐的复苏,但是由于投入差距太大,起步晚等原因与外国游戏相对而言并没有竞争力。
但如今,网络游戏走入盛世,成为一部分人休闲娱乐的主要行为。国产游戏渐渐走入国际市场,而且基于网络的发展真正实现了网络全球化。

1.4 开发环境

Python版本:3.8.2
相关模块 :Pygame模块;
以及一些Python自带的模块
环境搭建 :安装Python;
pip安装需要的模块

第2章 系统开发平台的阐述

2.1 Python之Pygame

Pygame就是Python中使用它的一个库,是建立在SDL基础上,允许实时电子游戏研发而无需被低级语言束缚。基于这样一个设想,所有需要的游戏功能和理念都都完全简化为游戏逻辑本身,所有的资源结构都可以由高级语言提供,如Python。Pygame作为Python下的一个开源框架,平台的兼容性非常的好,目前市面上流行的操作系统都有很好的支持。
Pygame环境搭建:利用pip安装Pygame
Python语言程序设计课程论文——Python小游戏_第1张图片
图2.1 安装Pygame

2.2 Pygame环境的要求

Pygame作为Python下的一个开源框架,平台的兼容性非常的好,目前市面上流行的几乎所有的操作系统都有很好的支持,随意对平台要求不是很高。而且,作为一个非编译的语言种类,对开发平台的硬件需求也不会有很大的要求,一般的平台配置就满足开发需求。而本文为方便起见所有的代码都运行在windows7下的平台上,其他操作系统例如MAC系统可以参照windows7系统下的操作来进行环境的配置和搭建。

第3章 总体设计

3.1 游戏流程概述

游戏基本规则:将图像分为m×n个矩形块,并将图像右下角的矩形块替换为空白块后,将这些矩形块随机摆放成原图像的形状。游戏目标为通过移动非空白块将随机摆放获得的图像恢复成原图像的模样,且规定移动操作仅存在于非空白块移动到空白块。
游戏流程图:
Python语言程序设计课程论文——Python小游戏_第2张图片
图3.1 游戏流程图
游戏基本流程如下:

  1. 运行:run “python pintu.py”,进入初始化界面
  2. 初始化:显示窗口大小及内容、加载图片和背景音乐
  3. 游戏循环:玩家输入对应难度的字符,开始游戏
  4. 游戏控件:玩家可以通过键盘或鼠标来完成移动拼图
  5. 游戏结束:完成拼图,提示:“真聪明!挑战成 功”游戏结束
    按Esc游戏结束

3.2 游戏总体设计

3.2.1 总体设计流程图

Python语言程序设计课程论文——Python小游戏_第3张图片
图3.2 设计流程图
整体设计思想:进入游戏主菜单后,显示游戏规则、游戏名、游戏难度等级,加载音乐,用户可选择游戏难度,拼图图片随机,按Esc可退出游戏。

3.2.2 游戏选择模块设计

游戏选择模块提供了4个难度设置选项:分别是3×3、4×4、5×5。难度选择灵活,供不同水平的玩家自由选择,避免打击入门级玩家的自信心或让高手级玩家缺乏挑战。选择好后,即可开始游戏。

3.3 图片模块设计

图片模块实现随机分配图片给玩家,引发玩家的好奇心,开始游戏后,按比例及不同挑战难道将切割后的图片随机分布到界面。

3.4 音乐模块

音乐模块可使玩家一边享受着悦耳的音乐,一边进行拼图游戏,给玩家舒适的体验。

第4章 详细设计

4.1图片模块

4.1.1随机选取一张图片

 定义一个名为GetImagePath的类,引入os和random模块,用os.listdir()、os.path.join()和random.choice()方法,使得游戏开始时,从根目录中获取随机图片。
 os.listdir()方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。
 os.path.join()函数,连接两个或更多的路径名组件。
 choice()方法返回一个列表,元组或字符串的随机项。
Python语言程序设计课程论文——Python小游戏_第4张图片
图4.1 定义GetImagePath()
Python语言程序设计课程论文——Python小游戏_第5张图片
图4.2 根目录下图片素材
在这里插入图片描述
图4.3 主函数初始化加载图片
在这里插入图片描述
图4.4 配置文件中设置屏幕大小及图片素材目录

4.1.2获得打乱的拼图

 定义名为CreateBoard的类,引入random模块,用random.randint()方法,使得去掉右下角那块(即用白块代替),并获得打乱后大小一样的方块拼图。
 random.randint(a,b)方法用于生成一个指定范围内的正数,其中参数a是下限,参数b是上限,生成的随机数n:a<=n<=b。
Python语言程序设计课程论文——Python小游戏_第6张图片
图4.5 定义CreateBoard()

Python语言程序设计课程论文——Python小游戏_第7张图片
图4.6 获得大小一样的方块及避免初始化就为原图代码
在这里插入图片描述

图4.7 在配置文件中设计随机打乱拼图次数代码

4.2 控制模块

4.2.1 控制白块移动的位置

 定义moveR、moveL、moveD、moveU的类,控制空白块的移动
 moveR()将空白Cell左边的Cell右移到空白Cell位置
 moveL()将空白Cell右边的Cell左移到空白Cell位置
 moveD()将空白Cell上边的Cell下移到空白Cell位置
 moveU()将空白Cell下边的Cell上移到空白Cell位置
Python语言程序设计课程论文——Python小游戏_第8张图片
图4.8 白块移动的位置代码

4.2.2 控制定义移动操作

 此游戏可以使用键盘操作,也可直接鼠标操作。
Python语言程序设计课程论文——Python小游戏_第9张图片
图4.9 游戏操作代码

4.3 界面显示模块

 设计游戏开始和结束界面,根据判断游戏是否结束类来展示不同的界面,从游戏界面一出现并伴随着背景音乐
Python语言程序设计课程论文——Python小游戏_第10张图片
图4.10 游戏初始界面代码
在这里插入图片描述

图4.11 判断游戏是否结束代码

Python语言程序设计课程论文——Python小游戏_第11张图片
图4.12 游戏开始时界面代码
在这里插入图片描述
图4.13 游戏结束时界面代码
在这里插入图片描述
图4.14 加载背景音乐代码

4.4 配置模块

 把屏幕大小、图片素材根目录、字体路径、定义颜色、FPS、随机打乱拼图次数、背景音乐及路径封装到同一个配置文件中。

Python语言程序设计课程论文——Python小游戏_第12张图片
图4.15 配置文件

第5章 实验展示

Python语言程序设计课程论文——Python小游戏_第13张图片

图5.1 实验展示 (1)

Python语言程序设计课程论文——Python小游戏_第14张图片

图5.2 实验展示 (2)
Python语言程序设计课程论文——Python小游戏_第15张图片
图5.3 实验展示 (3)

结论

通过本次实验,我学习了Pygame模块的一些基础知识,并结合自己喜欢的素材制作了一个简单的拼图游戏,激发了对此门课程的兴趣。作为一个轻量级的开发语言,Pygame有着无比的先天优势,大量的完整的安全的调用API接口,可以大大的加快开发者的开发速度,同时也避免了平台不兼容而影响游戏开发的进程。更为重要的一点,作为开源语言Python 的扩展库,其开源的特性使得这个Pygame库不断的在壮大,更多功能更高级的接口被程序员开发出来,这些不断推陈出新的技术支持,使得Pygame开发的游戏也会越发的完美,开发出的游戏的可玩性也会越来越好。

致谢

在此感谢在同学的帮助下,完成了这个拼图游戏,对此作品的分析设计和实现都下了很大功夫,查阅了众多资料文献,最终的设计成果令大家十分满意。也感谢本课程老师的耐心指导和鼓励。同时,也感谢各位读者朋友耐心读完本文,你们的支持便是我们前进的动力!

你可能感兴趣的:(python)