《基于Python的贪吃蛇游戏设计报告.docx》由会员分享,可在线阅读,更多相关《基于Python的贪吃蛇游戏设计报告.docx(27页珍藏版)》请在第一文库网上搜索。
1、基于Python的贪吃蛇游戏的设计与实现摘要在现代文明高度发达的今天,人们在日常生活中来源于各个方面的压力也越来越大。在所剩无几的闲暇时间里,人们更希望通过某种娱乐方式来放松疲惫不已的身心。游戏,我相信这是很大一部分人的选择!说到游戏,可能每个人有不同的答案,但是有一款游戏是每个人都熟悉并且玩过的,那就是贪吃蛇。贪吃蛇以其无网络运行、硬件要求低,操作简单等优势在非智能手机时代大放光彩。本次毕业设计的主题就是小游戏贪吃蛇的设计与实现,此次选择的程序设计语言为PythOn。PythOn运用地越来越广泛,甚至有着“黄金语言”的美称,它拥有相当丰富的标准库以及第三方模块库。为了节省开发的时间成本,本文
2、运用的就是其中的PyGame模块来实现游戏的开发工作。关键词:游戏;贪吃蛇;Python;PyGameDesignanddeve1opmentofthegreedysnakesma11gamebasedonpythonAbstractInthemoderncivi1izationhigh1ydeve1opedtoday,peop1eindai1y1ifefroma11aspectsofthepressureisa1sogrowing.Inthefewsparetime1eft,peop1eprefertore1axtheirexhaustedbodyandmindthroughsomekind
3、ofentertainment.Game,Ibe1ievethatthisisthechoiceofa1argenumberofpeop1e!Whenitcomestogames,everyonemayhavedifferentanswers,butthereisagamethateveryoneisfami1iarwithandhasp1ayed,thatis,greedysnake.Greedysnake,withitsadvantagesofnonetworkoperation,1owhardwarerequirements,simp1eoperation,etc.,shinesinth
4、eeraofnonsmartphones.Thisgraduationprojectisthedesignandimp1ementationofgreedysnakeandtheprogramming1anguagechosenthistimeisPython.Pythonisusedverywide1ynow,andevenhasthereputationofngo1denIanguagen.Ithasarichstandard1ibraryandathird-partymodu1e1ibrary.Inordertosavedeve1opmenttimeandcost,thispaperus
5、esthePyGamemodu1etorea1izethedeve1opmentofthegame.Keywords:Game;Snake;Python;PyGame目录摘要IAbstractII一、绪论5(一)研究现状与背景5(二)行性分析6二、需求分析6(一)功能性需求6(二)非功能性需求7三、游戏及开发工具简介7(一)游戏简介7(二)PythOn简介71. Python的运行原理72. Python的特点83. PyGame简介9(三)Pyeharm简介9四、概要设计10(一)功能介绍10(二)程序流程设计101 程序流程图102 .界面设计113 .功能设计12(三)游戏过程12五、系
6、统实现12(一)功能概览13(二)构建开始界面13(三)蛇与食物的绘制14(四)蛇的移动16(五)游戏运行主体205.6碰撞检测236系统测试246.1开始游戏246.2生成障碍物246.3无敌功能256.4系统测试26七、优化与总结26(一)优化升级设想26(二)项目总结27致谢错误!未定义书签。参考文献28一、绪论(一)研究现状与背景游戏是如今社会非常火热的娱乐活动之一,特别是在进入网络时代之后,各种各样的游戏如雨后春笋般的涌现。有些游戏如日中天,让游戏公司赚的盆满钵满,而有些游戏的寿命却如昙花一现般短暂,隐于尘埃。但是不管哪款游戏,都一定有它存在的价值,或是推动游戏行业的发展,或是给人们
7、带来欢乐。当然,对于人们来说,影音视频、电子阅读、K歌娱乐,旅游都是不错的娱乐选择。但是随着现代化建设的不断加快,这些传统的娱乐方式,早已满足不了人们的需求,而游戏也就是在这个时候渐渐走入人们的视野。不管是出于打发闲暇时光的想法,还是放松在忙碌一天之后的疲惫身心,游戏已经是很多人的第一选择。换一种说法,现在年轻人的生活之中也越来越离不开游戏。早在1976年,美国街机游戏生产商Grem1in便推出了在后来引领了游戏行业的这么一款经典街机游戏,B1ockadeo玩法就如同它的名字一样,封锁,屏幕上会有两个游戏角色,而两位玩家分别去控制自己角色的左右行进方向,经过的地方则会生成障碍物,谁先碰到障碍物
8、则谁输掉了游戏。B1OCkade游戏一经推出便受到大众追捧,游戏公司纷纷效仿开发类似游戏,也出现在各种操作平台上。但是真正让这种游戏形式家喻户晓,走向世界的还是诺基亚公司在21年之后推出的手机产品上搭载的贪吃蛇游戏一一Snakeo贪吃蛇的规则是,用键盘操控屏幕里小蛇的行进方向去吃豆子,吃的豆子越多小蛇的身体则会越来越长,蛇头触碰到蛇身或是障碍物时则游戏结束。由于贪吃蛇游戏玩法简单、硬件要求低,无论是上厕所时、排队时、等待汽车时,它都能满足各种需求场景下的应用。而在那个游戏行业竞争并不大的时代,使得它能做到人尽皆知。相对于其它游戏来说,贪吃蛇是一个带有悲剧性的游戏。很多游戏都是的规则是玩家打到通
9、关,以游戏操纵者的胜利而告终,但是贪吃蛇确是以小蛇的死亡结束游戏。不管你玩法多么娴熟,有多高超的技艺,随着小蛇的身体增长只会离死亡越来越近,离游戏的结束也越来越近,在蛇身越来越长的时候肯能你考虑的不再是如何去吃到豆子,而是如何避免蛇头碰到蛇身或是障碍。或许贪吃蛇想告诉我们的道理是不要疲于奔命,要做到生活和事业兼顾。树大招风,福兮祸倚,随时面对生活中可能发生的一切。我相信每款游戏都能给我们带来一定的积极意义。(二)行性分析科学性、预见性、公正性、可靠性是一个项目可行性分析必须具备的特点。但是由于此次的项目并不会上线或作商用盈利,所以本文的可行性分析仅对我个人而言阐述。本次毕业设计的可行性分析大致
10、包括以下三个方面。经济可行性,此次毕业设计开发的是一个小型单机贪吃蛇游戏系统,对于现在的个人笔记本电脑硬件来说完全可以承担此次系统开发的语言编写、测试以及运行等任务。而开发人员分配方面,个人足以完成此次系统开发的全部任务,所需预算不大。综上,此次的系统设计经济可行性通过。技术可行性指的是开发者所拥有的技术以及资源是否能满足项目的开发任务。此次贪吃蛇小游戏的开发语言,我选择的是PythonoPython是一种面向对象的编程语言,同时具有低级语言与高级语言的优点。整个系统完全可以依靠Python强大的标准库以及第三方库来实现,它在代码的模块化要求上也有一定的保证,方便游戏在各个平台上的移植,减少不
11、必要的工作量,也有利于代码的读写与修改。本系统所需语言技术开发层面不高,而且Python语法简单明了,开发人员完全可以单独实现整个系统的开发。运行可行性,单机版贪吃蛇小游戏所消耗的各类资源非常小。无论是公共场所的电脑还是个人电脑,以及移植到其他类型的平台上,在软件和硬件上都能够满足运行所需要的基本条件。而且游戏操作简单,玩家只需在知道游戏规则的情况下便能进行游戏。二、需求分析(-)功能性需求不管一款什么样的软件都应该实现它相对的功能,而此次的贪吃蛇作为一款小型的单机游戏作用就是为人们提供多样化休闲娱乐的选择之一。简单性,毋庸置疑这是贪吃蛇应有的特点,不论是操作简单还是游戏内容简单,都能使得它能
12、面向各个年龄阶段的人群。对于那些全身心投入工作、整日奔波的人来说,他们不可能投入过多的时间和精力在游戏上,所以贪吃蛇这类小游戏是一个不错的选择,也能满足其娱乐需求。也正是因为简单性,贪吃蛇没有像其他大型游戏的趣味性和丰富度。所以,为了增加游戏的竞争力,本次的系统将加入游戏难度选择模块。(二)非功能性需求软件产品开发设计不仅仅只是把满足用户业务需求作为第一要素,而且还应该具备其他一些重要的特性,比如系统的可靠性、可扩充性、适应性以及性能等。而这就是非功能性需求。贪吃蛇作为此次毕业设计的论题,它应该具备的就是可靠性和比较好的系统U1界面。对于可靠性来说,此次运用的是Python来编写系统,所以不管
13、是代码的维护性还是程序响应速度都能够得到很好的保证。而一个好的系统UI界面能够让用户在除了享受游戏带来的乐趣之外,带来更好的一个观感,也从另一方面增加了产品的竞争力。三、游戏及开发工具简介(-)游戏简介本次设计的游戏一一贪吃蛇,是一种消遣益智类的小游戏。在用户进入游戏开始界面时选择对应游戏难度即可开始游戏,游戏之初是一条很短的小蛇在屏幕上行进,而用户则是通过方向键控制小蛇的方向去吃掉游戏中的食物,吃到的食物越多蛇的身体就会越长、分数也会越高。游戏进行到中后期时,越来越长的小蛇更需要用户小心的操控,不仅在给玩家带来一定的娱乐性的同时也是对大脑反应速度的一种锻炼。当蛇头触碰到蛇身或是屏幕边缘时,则
14、游戏结束。(二)Python简介1Python的运行原理作为一种解释型脚本语言,Python的运行原理和C与C+相比大不相同。那解释型脚本语言又是什么呢?大家都知道高级语言对于计算机而言是不能直接识别的,所以当开发者想要运行一个由高级语言编写的程序的时候就需要一个合适的“翻译器”来作为一个中间介质,把编写程序的高级语言转变成计算机能直接识别的机器语言。这个转换过程也大致可以分为两类,一是编译,二是解释。在我们运行以.py结尾的Python程序时,Python解释器会把由高级语言组成的源代码编译成字节码然后提交到PVM(PythOnVirtUa1MaChine,PythOn虚拟机,它是PythO
15、n的运行引擎)中做进一步处理之后执行程序,最后由PythOn输出结果。运行原理如图3-1所示。图3-1Python运行原理图2.Python的特点“简单、明确、优雅”是Python遵循的设计理念阳,相较于其他编程语言更容易上手,代码也更具可读性。因为Python开源的本质,使得它的移植性很高,开发人员只需做少许修改便可将程序移植到其它平台,这包含了市面上大部分主流平台,如WindoWs、1inuxOS/2、FreeBSDSo1arisVMS等。其次,Python具有良好的可扩展性,如果开发者由于某种原因并不想程序中的部分算法被公开,则这部分可以用C或C+来编写,它们同样可以在Python程序中运行,要是想提高某一段代码的运行速度也可以使用同样的方法来实现5O再者,PythOn也因其可嵌入性被人们经常戏称为胶水语言,不同语言编写的不同模块都能通过Python而结合在一起,从而给用户提供高效能的脚本功能,而在那些真正需要运用其他语言优化的地方,Python都有强大的库和AP1支持。PythOn丰富的库更是让其成为“黄金语言”的一大因素,除了内置的标准库以外,PythOn社区更是提供了海量的第三方库TWiSted、wxPythonPythOn图像库等。这些库在处理电子邮件、文档生成、正则表达式、密码系统、数据库、图形用户界面(GUI)、FTP、单元测试等众多工作上提