软件工程第二次作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2024 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13253 |
这个作业的目标 | 要求使用Python编写一个“羊了个羊”风格的消除类小游戏。对开发过程进行实践,更加熟悉aigc工具 |
学号 | 102202125 |
一.项目展示 | |
Github仓库链接:https://github.com/Russell-Cadian/- | |
二、项目介绍 | |
1.项目的前端设计 | |
1.1UI布局和整体风格 | |
游戏界面布局: |
游戏主界面:游戏窗口的主体部分由牌堆、上方的所有牌(Tiles)和下方的牌堆(Docks)组成。所有游戏元素以简洁的方式进行排列,确保玩家能够直观地进行操作。
开始界面:游戏启动时显示一个绿色背景的开始界面,中央放置了一个启动按钮,点击该按钮即可开始游戏。
游戏结束界面:游戏失败或胜利时,界面会显示相应的结束图像,游戏结束界面还包含一个“重新开始”按钮,玩家可以通过点击该按钮重新开始一局游戏。
整体风格:
色彩方案:采用鲜明的色彩搭配,主要以绿色背景和明亮的牌面图像为主,创造出一种清新、舒适的游戏氛围。
鼠标点击操作:
启动游戏:在开始界面,玩家通过点击“开始”按钮来启动游戏。
牌的选择和消除:在游戏过程中,玩家通过点击屏幕上的牌来进行匹配消除。点击三张相同的牌将它们从牌堆中移除,并根据成功消除的牌对玩家进行积分。
重新开始游戏:在游戏结束界面,玩家可以点击“重新开始”按钮来重新启动游戏。
界面响应:
按钮点击:游戏界面中所有按钮的点击事件都由on_mouse_down函数进行处理,确保用户操作能够得到及时反馈。
游戏状态更新:游戏中的各种状态(如游戏开始、游戏结束、时间倒计时等)都通过游戏帧的更新和绘制来实时反映在界面上。
1.2响应事件及动画
游戏进行:
时间倒计时:游戏界面上方实时显示倒计时,随着时间的流逝,显示的时间不断减少,直到时间耗尽。
游戏结束:
游戏结束动画:当游戏结束时,根据游戏结果(胜利或失败)显示不同的结束图像,并通过淡入淡出的动画效果让结束界面更加显眼。
项目功能
1.倒计时功能
2.计分功能
项目中实现的技术和算法
Pygame:
用途:Pygame是一个Python库,用于开发2D游戏。它提供了绘制图形、处理用户输入、播放音效和音乐等功能,使游戏开发变得更加便捷。
实现:使用Pygame进行游戏主循环的处理,包括绘制界面、响应用户输入和管理游戏状态。
Python:
用途:Python是本项目的主要编程语言。它简洁易读,适合快速开发和原型设计。
实现:使用Python编写游戏逻辑、处理文件读写、实现游戏状态管理等。
pygame.image:
用途:用于加载和显示游戏中的图像资源。
实现:通过pygame.image.load()加载游戏所需的图片,如背景、按钮和牌面等,并通过screen.blit()将其绘制到游戏窗口。
文件操作:
用途:用于保存和加载高分记录。
实现:使用Python的文件操作功能读写high_scores.txt文件,以便保存玩家的高分记录。
2. 特殊算法和实现思路
游戏初始化算法:
思路:在游戏开始时,初始化所有游戏元素,包括牌的生成和分配。牌的生成依赖于随机化算法,确保每局游戏的牌面组合都不同。
实现:将所有牌的标签进行随机排序,然后根据设定的位置将其生成到游戏界面中。使用random.shuffle()方法打乱牌的顺序,以实现随机化。
牌的匹配与消除:
思路:玩家点击两张相同的牌时,这两张牌应该从游戏中消除,并更新游戏的状态和分数。
实现:在点击事件处理函数中检查点击的牌是否相同。如果相同,将它们从牌堆中移除,并更新分数。
倒计时功能:
思路:游戏过程中需要进行倒计时,当时间耗尽时游戏失败。
实现:通过每帧更新减少剩余时间,并在倒计时时间到达零时更新游戏状态。
高分排行榜管理:
思路:游戏结束时记录并更新高分排行榜。确保排行榜只包含前五名的最高分。
实现:读取和写入高分记录到文件中,并在游戏结束时更新排行榜。
游戏重启功能:
思路:在游戏结束时提供一个重新开始的选项,允许玩家重新开始一局游戏。
实现:在游戏结束界面中添加“重新开始”按钮,点击后重置游戏状态并重新初始化游戏。
总结
本项目通过结合Pygame库的强大功能和Python编程语言的简洁性,实现了一个具有挑战性和趣味性的消除类游戏。通过实现游戏初始化、牌的匹配与消除、倒计时、排行榜管理以及游戏重启功能,确保了游戏的可玩性和互动性。每一部分都经过精心设计,以提供最佳的用户体验。
测试
游玩者需要自行游玩进行测试,从而得到结论
AIGC表格
PSP表格
个人作业评价
项目基本按计划完成,游戏的核心逻辑如关卡生成、倒计时、玩家交互、游戏胜利/失败判断等均得以实现。
可以改进的地方:
可以增加更多的游戏难度
可以增加排行榜功能
提升美工水平