(深信息)用python实现贪吃蛇小游戏毕业设计报告-.docx
《(深信息)用python实现贪吃蛇小游戏毕业设计报告-.docx》由会员分享,可在线阅读,更多相关《(深信息)用python实现贪吃蛇小游戏毕业设计报告-.docx(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、深的檐包旗白技术孽陇封簿机孽陵毕业设计报告题 目:用python实现贪吃蛇小游戏学生姓名:学 号:专业班级:指导教师:2020年 5月 27日、详细设计(一)主要函数及模块1 .主要模块模块作用pygamePython内置模块,游戏设计模块Random生成随机数sys系统相关的信息模块2 .主要函数函数作用main ()主函数,控制游戏的所有进 程pygame. time. Clock ()控制帧速率pygame. display. set_mode ()生成windows窗口movesnake ()移动贪吃蛇snake_is_alive()判断蛇死了没snake i s_eat_food (
2、)判断贪吃蛇是否吃到食物draw_snake画出贪吃蛇draw_food画出食物draw_score画成绩pygame. image, load ()加载图片pygame. display, update ()刷新屏幕pygame. surface, f ill ()对surface对象填充某一种 颜色get_random_location ()食物随机生成(二)主要功能注:各功能的主要代码请查看附录一1.关于贪吃蛇(1) .蛇的绘制这里采用一个元组存储贪吃蛇身体各个部分的坐标(一条贪吃蛇不是由很多节组成的嘛)。最后获取相应坐标然后调用pygame. draw. rect ()画出身体的各个部
3、分(2) .蛇的移动监听键盘,玩家按下键盘只是改变direction的值,再用move_snake ()函 数更新贪吃蛇坐标。如果不按,那direction值一直不变,贪吃蛇就一直向前 走。在这过程中贪吃蛇必须从蛇的头部开始移动,所以蛇不能反方向移动,也 就是尾巴不能变成蛇头。如果你不按任何键,蛇就会以当前的方向向前移动。 当玩家按下有效的箭头键时,蛇头按指定的方向移动,一次移动身体一部分。 我们利用监听键盘,根据用户按键,用direction变量记录移动方向。然后更 新贪吃蛇元组里面的坐标(其实每次移动只用更新头尾就行)。最后统一画出 来。移动做法具体是,我们把每次头部移动的新坐标插入贪吃蛇
4、元组,然后删 掉尾部一节(在没有吃到食物的情况下!)(3) .贪吃蛇相关判断 判断蛇是否死亡“蛇”的死亡需要满足两个条件:1.蛇与身体碰撞2.蛇与墙壁碰撞。当“蛇”的头部坐标等于蛇身体的任意坐标时,便满足“蛇”死亡条件,蛇与身 体碰撞。当“蛇”的头部坐标超出的地图坐标时,便满足“蛇”死亡条件,蛇与墙壁碰撞。蛇吃到食物当“蛇”头部坐标等于食物坐标,那么吃到食物。这时候注意,不需要删尾部一 节了,因为吃到食物变长了,如果没有吃到食物,那么是正常移动,删掉尾部一 节坐标。2.关于食物(1)食物随机出现比较简单只使用到random模块,将x和y都设定成random,以及限定随机数起始在地图 的坐标内,
5、防止超出地图玩家看不见。(2)画出食物采用一个元组将食物出垩的位置记录下来,之后再获取位置,调用 pygame. draw, rect ()画出来即可。五、心得体会毕业设计是对学生进行知识利用培训的一个重要组成部分,从发现问题到 分析问题,解决问题以及实践培训方面,这是一个具体的考试和实践技能培训 过程。随着社会科学和技术的迅速发展,计算机在生活的各个方面都被使用。 “Python”是近年来最先进的编程语言之一,被排在2017年IEEE编程语言排 名的前列,被列为最受欢迎的语言之一。有了良好的发展前景,认真研究蟒蛇 和完成学业计划是非常重要的。回顾这次设计毕业设计的过程,我仍然非常感动。实际上
6、,从一开始,我 就决定完成该课程,从理论概念到实际完成,我在4个月内学到了很多东西, 不仅巩固了我以前学过,同时也学到了很多新知识。我已经掌握了一种新的编 程语言,加深了对模块化编程思想的理解,对Python函数库有了更全面的了 解,对函数调用有了更深刻的理解。这些都是我得益于此次毕业设计结束所取 得的成就。我相信这些知识将使我现在和将来受益。在这个毕业设计中,虽然我学到了很多知识,得到了很好的实践练习,但 也遇到了很多问题。毕竟,这是我第一次进行毕业设计。Python语言也是一 种新的编程语言,我之前仅接触过C语言。在此过程中遇到一种或多种困难是 正常的。从开始在互联网上查找Python教程
7、,在库中查找与Python相关的材 料以学习Python,到程序的编写开始,最后的测试以发现错误,在中间很多 次,程序是各种各样的我想放弃所有的错误,但是由于种种压力,我终于坚持 了下来,终于匆匆完成了。贪婪的蛇游戏是一个简单的游戏,但是对于像我这样的初学者来说,它充 满了困难。我记得当我刚决定这个科目时,老师提醒我我的科目太简单了。我 应该如何写毕业论文,最后与导师讨论之后,我决定使用原始贪婪蛇的基本功 能。但是对我来说依然是份困难的挑战。幸运的是,皇天不负有心人,最终自 己完成了该程序。在两个半月内,这200行代码,这是我给这个毕业设计项目 的所交出的答卷。致谢从最初选择主题到收集相关材料
8、以及学习Python语言,用了两个半月的时 间。从开题报告,初步程序设计,中期检查,提交论文的初稿到最终稿,这一 步已经很多了。坚持不懈,学到很多东西,思考了很多,心情从简单变成了复 杂,然后又从复杂中脱颖而出.但是随着毕业论文的完成,我的内心充满了成 就感实在令人难以置信,让我感到所有这些努力都是值得的。在写这篇谢谢的时候,我想了很多。从选题的开始到开题报告,再到毕业 论文的撰写,我都想到了我的导师蔡剑宁,蔡老师给了我很多建议和帮助,并 且我被程序错误折磨了很多次。当我不想继续学习时,蔡老师经常时机恰到好 处的给与我提醒和警示。在此,我要对宋炯老师表示衷心的感谢。刚开始,我对Python语言
9、了解不多。后来,我找到了小甲鱼老师。他的视 频教学使我有机会从零开始学习Python。在他的逐步指导下,我对Python的 理解越来越深入,最后编写了程序。因此,我想对在屏幕上教我的老师说“谢 谢” o感谢您在CSDN博客和博客园中提供的巨大帮助。当我遇到各种我无法用 自己的能力解决的问题时,正是你们,略显幼稚的提问下耐心地向我一一解 释。在论文即将结束时,我的情绪不再平静。我想说的是,有了你们的帮助, 论文和程序才能顺利完成。在此,我向你们表示最诚挚的谢意!参考文献1嵩天,礼欣,黄天羽.Python语言程序设计基础加,北京:高等教育出版社,2017.2小甲鱼.零基础入门学习PythonM.北
10、京:清华大学出版社,2016.3新华网.2019年中国游戏行业发展报告R,北京:新华网,2019.4(乌拉圭)Fernando, Doglio著,陶俊杰,陈小莉译.Python性能分析 与优化 加.北京:人民邮电出版社,2016.5 MarkLutz著,侯荣涛译.Python袖珍指南M.北京:中国电力出版 社,2015.6杨年华.Python程序设计教程M,北京:清华大学出版社,2017.7(美)Al Sweigart著,李强译.Python游戏编程快速上手M,北京:人民邮电出版社,2017.8(美)Jonathans . Harbour著,李强译.Python游戏编程入门M. 北京:人民邮电
11、出版社,2015.9唐姜明.基于C语言的贪吃蛇游戏开发与设计D.南京:南京工程学院,2014.附录一蛇的绘制 #将贪吃蛇画出来def draw_snake(screen, snake_coords):for coord in snake_coords:x = coordx * cell_sizey = coord y * cell_sizewormSegmentRect = pygame. Rect(x, y, cell_size, cell_size)pygame. draw, rect(screen, dark blue, wormSegmentRect)wormlnnerSegmentR
12、ect = pygame. Rect (#蛇身子里面的第二层亮绿色x + 4, y + 4, cellsize - 8, cell_size - 8)pygame. draw, rect (screen, blue, wormlnnerSegmentRect)蛇的移动 #移动贪吃蛇def move_snake(direction, snake_coords):if direction 二二 UP:newHead = x : snake_coords HEAD x , y:snake_coords HEAD y - 1elif direction = DOWN:newHead = x : sna
13、ke_coords HEAD x , y:snake_coordsHEADV y + 1elif direction 二二 LEFT:newHead = x : snake_coords HEAD x - 1, y: snake_coords HEAD y elif direction = RIGHT:newHead =x : snake_coords HEAD V x + 1, y: snake_coordsHEAD y snake_coords. insert(0, newHead)判断蛇是否死亡def snake_is_alive(snake_coords):tag = Trueif s
14、nake_coordsHEAD x = -1 or snake_coordsHEAD x= map width or snake_coordsHEADy, = -1 or snake_coordsHEADy = map_height: tag二False #蛇碰壁啦for snakebody in snake_coords1:if snake_body ,x = snake_coords HEAD x and snake_body J = snake_coords HEAD yJ :tag = False #蛇碰到自己身体啦return tag蛇是否吃到食物 #判断贪吃蛇是否吃到食物def s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 深信 python 实现 贪吃 小游戏 毕业设计 报告
限制150内