软件工程第二次个人作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13253
这个作业的目标 1.学会使用python编写一个小游戏
2.学会使用AIGC工具帮助编写代码
学号 102201130

1.项目展示

项目仓库连接

https://github.com/gsgqh/mygame

2.项目介绍

游戏玩法

  • 点击图案进入下方栏内,栏内出现3个相同图案即可消除,若栏内同时出现7个图案或游戏时间到了则游戏失败

前端设计

  • 美术素材均来自于AI,由microsoft copilot(https://copilot.microsoft.com/)生成


    *按钮位置和方块的摆放顺序均为本人设计,其它例如排行榜则全权由AI负责

游戏界面

A. 开始画面,包含难度选择和排行榜功能

B. 游戏界面,包含消除、计时、计分、撤销、返回功能

C. 排行榜界面,包含排名,难度,获取排名时间、返回功能

D. 成功失败界面,包含重开和退出

算法介绍

A. 随机生成方块
根据选择的难度所定义的模板,生成不同数量的方块,保证方块数量能被3整除,且相互之间数量不一定相同,且不会有某一种方块数量过多

因此设计了一个伪随机的算法,具体思路为每种方块数量都在平均数上下波动,如果上次向上波动,下次就一定向下波动

B. 撤回功能
思路其实很简单,保存上一次操作时方块的状态即可(依照蜘蛛纸牌思路,每次撤回都要扣除一分)

C. 明暗处理
不能点击的方块理应处于暗一点的状态提示玩家,切鼠标滑过时没有高亮效果,算法思路为遍历所有方块,对应每个方块,如果找不到比他层数更高,且覆盖他的方块,则视为可以点击

游戏设计

A. 游戏玩法:游戏玩法本身是羊了个羊的玩法,不多赘述
B. 难度设计:玩家选择不同的难度,更高的难度会有更多的方块种类,会有不同的方块层数和数量,例如简单难度是3层,而普通是5层,且根据方块摆放的密集程度,方块的大小也不相同,目的是尽可能摆满屏幕
C. 分数功能:分数功能是本游戏最核心的功能,由于有撤回功能的存在且游戏本身难度并不算高,因此游戏的目标是尽可能获取更多的分数,分数和时间功能息息相关,分数逻辑如下
1.每成功消除一次加一分
2.每使用一次撤回扣一分,没分则不扣除
3.若通关,则会根据剩余时间,以及难度系数作一个加权,得到最终分数(更高难度通关理应比低难度通关分数高)
D. 堆叠设计:设计为大小层,奇数为大层,偶数为小层,大层每四个方块对应小层一个方块

3.测试

1.对于方块生成是否能够让游戏通关,如果每次生成都要打一次的话,很浪费时间,因此直接打印各方块数量来进行调试

  • 该图代表有六种方块,数量分别为15, 21, 18, 15, 21, 18
    2.测试保存的分数是否正确,也通过打印信息来调试

    3.测试撤回功能
    想了以下几种情况,均通过测试(懒得录屏了,有点麻烦)
    ① 游戏开始直接撤回(此时撤回图标是暗的,无法撤回)
    ② 消除后撤回(没有问题,可以回到消除前的状态,且加分减分正好抵消)
    ③ 消除后栏内为空撤回(没有问题,依然可以回到消除前的状态)
    ④ 撤回后撤回(此时撤回图标是暗的,无法撤回)
    撤回功能测试均通过
    4.测试不同分辨率下游戏的表现
  • 测试了1080P和2K分辨率下游戏是否不同,由于固定字体大小的原因,2K场景下可能会显得更空一些(已吸取教训,下次改进)

4.AIGC表格

子任务 借助何种AIGC技术,实现了什么功能 效果如何?
先生成整体游戏框架 使用copolit生成 生成基本没问题,为后续改动奠定基础
创建按钮功能 使用copolit生成 效果很好,耦合度极低,很方便调用
创建撤回功能 使用copolit生成 无法实现
生成排行榜 使用chatgpt生成 完全交由AI处理,生成的非常好,我只修改了一些显示的位置
生成美术素材 使用copolit生成 经过多次提示和修正,可以生成想要的效果
  • 评价: AI在前端方面非常有优势,人类只要负责对位置的一些修改就好了,但是在设计一些复杂的算法模块,仍然还有所欠缺

5.PSP表格

PSP Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划
• Estimate • 估计这个任务需要多少时间 5 5
Development 开发
• Analysis • 需求分析 (包括学习新技术) 30 35
• Design Spec • 生成设计文档 10 15
• Design Review • 设计复审 20 15
• Coding Standard • 代码规范 (为目前的开发制定合适的规范) 10 10
• Design • 具体设计 20 40
• Coding • 具体编码 180 380
• Code Review • 代码复审 20 70
• Test • 测试(自我测试,修改代码,提交修改) 30 150
Reporting 报告
• Test Repor • 测试报告 5 5
• Size Measurement • 计算工作量 5 5
• Postmortem & Process Improvement Plan • 事后总结, 并提出过程改进计划 10 20
合计 245 750
  • 评价:总体来说设计的功能都完成了,做的比较满意,但是限于时间问题,动画没有做,方块都是瞬移的,以后可以改进
posted @ 2024-09-17 21:02  L'Lawliet  阅读(45)  评论(0编辑  收藏  举报