课后作业2:个人项目(贪吃蛇游戏改进)

时间:2019-03-24
本文章向大家介绍课后作业2:个人项目(贪吃蛇游戏改进),主要包括课后作业2:个人项目(贪吃蛇游戏改进)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

贪吃蛇游戏改进

  • 学号:2017xxxxx7242

  • 姓名:闻绍天

  • 我的码云贪吃蛇项目仓库:项目仓库


1 - 计划

PSP2.1 我的估计(min) 实际情况(min)
计划 10 15
>>估计这个任务需要多少时间 10 15
开发 410 590
>>分析需求 10 10
>>生成设计文档 20 15
>>设计复审 10 5
>>代码规范 10 20
>>具体设计 60 120
>>具体编码 240 360
>>代码复审 30 30
>>测试 30 30
记录用时 10 10
测试报告 10 10
计算工作量 10 10
事后总结 30 20
提出流程改进计划 10 10
总用时 490 665

2 - 开发

分析需求

  1. 改进游戏的ui
  2. 在游戏上方添加控制栏
    • 添加难度控制
    • 添加配色控制
    • 添加全屏选项
  3. 改进细节
    • 游戏名字
    • 得分变为中文

设计文档

  1. 添加顶部控制栏

    • 学习PyCharm相关文档,制作顶部控制栏
    • 添加需求分析的几个按钮
  2. 写游戏难度设置

    • 查阅PyCharm相关文档,学习物体运动方面的api
    • 难度设置为1-3
      • 难度1-没有障碍物,蛇移动速度慢
      • 难度2-有少量障碍物,蛇移动速度中
      • 难度3-有较多障碍物,蛇移动速度快
    • 难度
      • 随时间,难度加大
    • 将控制栏按钮绑定难度
  3. 改进界面ui

    • 改进游戏配色
    • 不需要有边框
  4. 改进游戏细节

    • 修改游戏的名字为贪吃蛇
    • 修改Scale为中文分数

代码规范

Pycharm安装autopep8

pip install autopep8

使用方法:

控制台定位到当前程序文件夹

//file为所要规范代码的程序名
autopep8 --in-place --aggressive --aggressive file.py

pycharm配置autopep8,参考博客


3 - 具体设计

此次任务添加的代码有200行左右,总共提交,推送8次。

分别修改了如下地方

  1. 完成了UI改进任务,建立一个config配置文件,把颜色,文字等配置信息放到配置文件中,统一进行管理

  2. 在游戏结束的时候,添加了重新游戏,和退出游戏按钮选项,其中按钮,最重要的是通过判断鼠标是否在矩形内,并且是点击事件

    # 判断鼠标是否在矩形内
    def in_button(self):
        point_x, point_y = pygame.mouse.get_pos()
    
        if self.collidepoint(point_x, point_y):
            return True
        else:
            return False
  3. 添加了游戏的bgm和吃东西的音效

  4. 添加了,可以显示的游戏时间。并且设置了随游戏时间的进行,游戏难度会增大,蛇的移动速度会加快

  5. 制作了开始游戏的新界面,以及开始按钮

  6. 添加了切换主题按钮,并且修改了重新开始回到首页的问题

  7. 添加了游戏排行榜,以及游戏的使用说明


4 - 测试清单

添加的功能 预期结果 是否实现(√或×)
UI改进任务 修改配色,边框,标题等
游戏开始,重新开始,和退出按钮 点击按钮实现相应的功能
显示游戏的时间 游戏进行显示时间
游戏音效 添加游戏bgm,和吃的音效
主题 通过按钮,实现切换主题
排行榜 在游戏结束时,显示排行榜
游戏开始界面 创建游戏开始的第一个界面,不直接开始游戏
游戏难度 随着游戏时间的进行,游戏难度增大

5 - 视频


6 - 总结

这次的贪吃蛇游戏改进,我做了很长时间,从最初的需求分析,想如何改进游戏,如何能让游戏更有乐趣。到后来的编码设计,也有很多的灵感迸发出来。通过在网上的学习,查找,大部分想要实现的功能都实现了出来。也有一些功能因为时间的关系,没有能够做出来。不过这次通过PSP计划,使得工作很有规律,不再是很混乱,但在时间的规划上,还要进一步地加强,确定什么时间做什么事。还需要很多努力。

下面是总结的具体信息:

好处

  • 通过这次的练习,熟悉了python,锻炼了短时间内学习能力
  • 懂得了,如何使用PSP指定计划

同时也有很多地方需要改进

  • 计划的执行力,需要改进,可能一段时间内并不全做这件事,导致时间计算有误
  • 学习时,规划时,应以简单的方向入手,以较难的方向入手,很容易没有信心
  • 应在分析需求阶段,多花时间,多想多思考,另外在编码时,有灵感应及时添加到分析中