软件工程第二次个人作业

这个作业属于哪个课程 fzu-se2024
这个作业要求在哪里 要求
这个作业的目标 熟悉借助AIGC编程,展现个人开发能力
学号 102201331

1. 指路-> 旅了个游

2. 项目介绍

  • 素材来源
    • 背景来自作业一dalle3生成的logo

    • 游戏中的图片均为本人拍摄,无版权问题

    • 游戏名为“旅了个游”,为了省去找素材的麻烦,项目初用自己拍的照片作为demo的图片,后面觉得效果不错,便以次为主题设计了这个游戏

  • 特色功能
    • 实现了类似“羊了个羊”的游戏模式
    • 游戏分为三种难度,分别对应在三个省份的照片,难度越高,不同照片的种类越多
    • 存在两个magic method,在游戏中按p可以直接获胜,按c可以清楚下方存储框中所有照片
    • 本来想在每个难度再添加递进的闯关升级功能,可是ddl就这么来了,没有时间再去弄了orz
  • 技术
    • 使用pygame进行设计
    • 第一次尝试以多文件方式编程,代码逻辑和结构更清晰,不会有太多重复冗余的部分。不过还是第一次尝试,还是有很多可以改进的地方。之前用ipynb不小心把代码块删除无法恢复
    • 没有用到什么特殊的算法,难点主要在分层图片选择的判断,除了遍历没有想到什么很好的方法

3. 测试

  • 游戏画面
  • 主界面、关卡选择界面、胜利界面、失败界面



4.AIGC表格

子任务 借助何种AIGC技术,实现了什么功能 效果如何?
游戏界面设计 借助Copilot生成代码框架,ChatGPT提供逻辑建议 通过Copilot快速搭建了pygame的基础代码结构,ChatGPT帮助细化了游戏逻辑和界面交互,实现了一个直观且响应迅速的游戏界面。
状态栏功能实现 借助Copilot生成状态栏类代码,ChatGPT优化逻辑 状态栏能够显示玩家选中的图片,并在满足消除条件时进行更新。Copilot帮助快速生成了类的基础结构,ChatGPT则在逻辑上提供了优化建议,使得状态栏功能运行流畅。
图片选择与消除逻辑 借助ChatGPT设计选择和消除算法 游戏中玩家可以通过点击选择相同的图片进行消除。ChatGPT帮助设计了选择和消除的算法,确保了游戏的核心玩法既简单又具有挑战性。
游戏流程控制 借助ChatGPT设计游戏状态机 游戏拥有多个状态,如主菜单、选择关卡、游戏进行中、游戏结束等。ChatGPT帮助设计了游戏状态机,使得游戏流程控制清晰,玩家可以顺畅地在不同游戏状态间切换。
  • 心得体会
    对于一个陌生的库,使用AIGC能够很好的了解库的简单使用方法,能够让我快速上手而不需要去查阅相关的tutorial。对于第一次写的逻辑,我会以注释的方式告诉copilot,我要实现什么功能,它能够用库中的函数提供一个框架,我再去查阅相关函数的使用方法,将个人需求补充到它给的框架之中,大大提高了编写的效率
  • 学到的内容
    这次作业,我主要是尝试了多文件编程,熟悉多文件编程为后面上手较大项目铺路,导入自己写的类,从而使代码能更好的维护和修改
    更细的来说,学习到了pygame中的各种碰撞检测和原始的坐标检测方法,以及一些基本的绘制功能。

5. PSP表格

任务名称 预估耗时(h) 实际耗时(h)
pygame使用学习 3 4
状态栏功能实现 1 1
界面设计 6 6
图片选择与消除逻辑 4 6
难度选择 1 1
界面美化 3 5
测试与调试 4 6
素材整理 2 2
代码整理 3 4
总用时 27 35
  • 自我评价
    • 完成过程
      过程来说,有点拖,到最后时间才完成,很多任务比预想的更花时间。不过感觉完成了之后还是学到了很多东西,代码能力和debug的能力有所提升,不再像写算法那样在一个文件中解决问题,而是更有逻辑和结构的将一个大任务分解成多个小任务去解决
    • 最终效果
      差强人意吧,其实还构思了挺多模块的,碍于时间和其他任务的ddl,没有完成进一步的想法。不过最终展现的结果也满足了大部分要求,添加了悬停时候的选中框,也对界面进行了一定的美化。可以改进的地方还有音效和一些动画。
posted @ 2024-09-17 18:49  whynottostudy  阅读(30)  评论(0编辑  收藏  举报