软件工程第二次个人作业

news/2024/9/18 12:53:24/文章来源:https://www.cnblogs.com/shiyueshining/p/18413204
这个作业属于哪个课程 软件工程
这个作业要求在哪里 作业要求
这个作业的目标 了解游戏开发的大致流程
学号 052205144

项目名称:抓肥羊🐑

github主页链接:poetry-joy (github.com)

github作业链接:[软工作业](git_demo/软件工程 at master · poetry-joy/git_demo (github.com))

一、游戏规则:

①玩家通过点击选择图案并消除,当所有图案被消除时游戏结束。
②玩家可以开出隐藏款大肥羊(不涉及侵权)
③玩家需要非常眼疾手快的进行游戏,游戏初始时间为60s,难度随着游戏关卡的变更陡然提升,主要体现在关卡游戏时间上的线性递减(例:第一关60s,第二关50s,…,第六关10s),给玩家带来高难度的挑战的体验
④游戏共设置六个关卡,六个关卡过后会弹出FMVP结算页面,之后自动退出程序(防沉迷)
⑤拓展功能:给老师和助教等尊贵的SVIP玩家设计了一个一键通关的按钮,在任意情境下(游戏中途)均可使用,可以节 约老师们检查我们的作业的时间

二、游戏演示: ❤️

​ ①主菜单进入游戏界面演示:

​ ②游戏玩法演示:

​ ③老师助教专用功能演示:

​ ④游戏失败演示:

​ ⑤游戏全通关演示:

三、小游戏实现步骤

​ (1)设计界面

​ ①主菜单

​ ②游戏界面

​ ③结束界面

​ (2)设计玩法

  • 消除游戏为基础的多图层堆叠游戏

  • 游戏难度飙升:,每进入下一关游戏时间骤减10s

​ (3)附加功能

  • 给老师和助教设计了一个一键通关的按钮,在任意情况下(游戏中途)可使用,可以节约老师们检查我们的作业的时间

四、小游戏实现代码

poetry-joy (github.com) 小小链接我已放好

五、AIGC

​ ①背景音乐:AI

​ ②背景图片:AI

​ ③水果:AI

​ ④小羊:(阿里巴巴矢量图标库)

​ ⑤胜利图片:AI+Ps

​ ⑥AIGC表格:

子任务 借助何种AIGC技术实现了什么功能 效果如何?
画主菜单 背景+按钮绘制 达到预期,样式需调
画游戏界面 背景绘制 达到预期,需微调
画游戏结束界面 背景+按钮绘制 达到预期
画倒计时 时间变换 达到预期,需微调
画道具 道具定位 达到预期
游戏胜利动画 动画演示 达到预期,需微调
道具使用动画 动画演示 达到预期,需微调
按钮的处理逻辑 页面变换 达到预期
图层堆叠 多个图层 本来想要交错型,始终调不好
检查是否能被消除 多层图块匹配问题 达不到预期,我大调
检查是否进入死局 偶数处理 效果一般
更新剩余时间动画 更新剩余时间 达到预期
结束整个游戏 FMVP结算动画 效果一般
主逻辑 实现整体流程 效果还可以

六、测试实例

①代码:

``

class TestGameLogic(unittest.TestCase):def setUp(self):# 初始化 Pygame 显示,以便测试图像部分pygame.display.set_mode((100, 100))def test_powerup_activation(self):"""测试 PowerUp 的激活与动画更新"""power_up = PowerUp()self.assertFalse(power_up.active, "初始状态下,PowerUp 应为非激活状态")power_up.activate()self.assertTrue(power_up.active, "调用 activate 后,PowerUp 应变为激活状态")# 模拟经过的时间,并测试是否可以触发胜利条件layers = [Layer(original_patterns, (0, 0), is_top_layer=False)]power_up.update(layers)self.assertTrue(power_up.active, "动画未完成时,PowerUp 仍应处于激活状态")pygame.time.delay(power_up.animation_duration + 100)  # 等待足够时间power_up.update(layers)self.assertFalse(power_up.active, "动画完成后,PowerUp 应变为非激活状态")def test_layer_tile_management(self):"""测试 Layer 类的图块管理"""layer = Layer(original_patterns, (0, 0), is_top_layer=False)row, col = 0, 0tile = layer.get_tile_at_position(row, col)self.assertIsNotNone(tile, "初始状态下,图块应存在")layer.remove_tile(row, col)self.assertIsNone(layer.get_tile_at_position(row, col), "调用 remove_tile 后,图块应被移除")def tearDown(self):pygame.quit()if __name__ == '__main__':unittest.main()        

②测试结果:

七、部署到Web

将文件整理并汇总到github:git_demo/软件工程 at master · poetry-joy/git_demo (github.com)

八、AIGC表格

九、PSP表格

PSP 预估耗时 实际耗时
项目分析,明确需求 1 0.2
构建原型模型 1 0.1
项目准备工作 0.5 0.1
投入开发 12 10
调试和修改 2 15
测试 1 0.5
部署到web 0.5 暂无
复盘与总结 0.8 0.5
维护 持续跟进 持续跟进

个人评价:我在开发和需求分析过分追求速度,导致后期调试和修改阶段耗时较多,在开发中出现了一系列未预见到的问题。以后我会多在原型设计和测试阶段投入时间精力,以减少后期调试的工作量,确保项目的稳定性和质量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/796846.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

延迟退休来了,如何应对“老龄化”的自己?

延迟退休终于还是来了,比相像中要来得更快一些。当下的就业环境对毕业生来说已经是很严峻了,这个时候再实行延迟退休,有点雪上加霜的感觉,时机上总有点不太合适。 如果我们注定要在岗位上待更长的时间,以下几点可能需要提前准备。 1、健康的身体 建立良好的生活习惯,坐息…

解决Spring Data JPA Hibernate的N+1问题的最佳方法

最佳方法:定制@NamedEntityGraph、定制查询和定制VO,可以做到按照需要最佳查询,需要注意的地方:定制VO的字段一定要等于或小于实际查询的字段,才不会复制的时候触发N+1查询。 1 问题复现 1.1 项目结构 1.2 entitypackage com.xkzhangsan.jpa.entity;import lombok.Getter;…

全网最适合入门的面向对象编程教程:48 Python函数方法与接口-位置参数、默认参数、可变参数和关键字参数

在 Python 中,函数可以接受多种不同类型的参数,包括位置参数、默认参数、可变参数和关键字参数等,理解这些参数类型对于编写灵活且可维护的代码非常重要。全网最适合入门的面向对象编程教程:48 Python 函数方法与接口-位置参数、默认参数、可变参数和关键字参数摘要: 在 P…

软工作业-个人介绍

一、自我介绍 我是广东工业大学大三的学生,我的爱好是打游戏 二、快速阅读软件工程教材之后的问题 软件工程中的需求分析如何做到全面而准确? 软件设计的原则有哪些,如何在实际项目中灵活运用? 软件测试的方法有哪些,如何确保测试的有效性? 项目管理在软件工程中的重要性…

浙江理工大学24软件技术基础第一次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zjlg/rjjc/这个作业的目标 介绍自己并发表对课程学习的期望姓名-学号 李想-2021330301036浙江理工大学24软件技术基础第一次作业 一、自我介绍 (一)、基本信息 大家好!我是22级自动化2班的李想,来自广东。我的爱好是动…

海贼女帝3D打印模型免费分享

链接:https://pan.quark.cn/s/fbe6cb7fd476

碧蓝航线-山城-猫娘3D打印模型免费分享

下载链接:https://pan.quark.cn/s/4c64df8eb54e

地牢里发生了什么3D模型免费分享

下载链接:https://pan.quark.cn/s/0c01c6fd4e90

斩赤红之瞳-艾斯德斯3D打印模型免费分享

链接:https://pan.quark.cn/s/c26ae6a17b69

18号3D打印模型分享

下载地址:https://pan.quark.cn/s/5c735ceee560

Redis 入门 - 收官

《Redis入门》系列完成,涵盖Redis基本信息、安装、可视化工具、基础数据类型、C#/.NETCore客户端库及封装。分享学习经验,帮助初学者少走弯路,形成系统性概念。后续将分享《Redis进阶》。《Redis 入门》系列文章总算完成了,希望这个系列文章可以想入门或刚入门的同学提供帮…

计算机桌面有去不掉的窗口边框 ,电脑屏幕有残留刷新去不掉怎么办

先允许任务管理器 ,结束explorer进程树 还可以参考 https://blog.csdn.net/weixin_42614269/article/details/118206476再重新运行explorer任务 桌面恢复正常。