2024秋软件工程个人作业(第二次)
这个作业属于哪个课程 | < https://edu.cnblogs.com/campus/fzu/SE2024> |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13253 |
这个作业的目标 | 借助AIGC工具,使用Python编写一个类似“羊了个羊”和“抓大鹅”风格的小游戏 |
学号 | 102201308 |
1.项目展示
2.环境配置
因为我的Copilot学生认证一直没有通过,所以最后我选择使用PyCharm来进行本次作业的撰写。
3.游戏介绍
设计理念
4.核心算法和实现思路
1. 游戏状态管理
使用全局变量管理游戏状态(如start_game、game_mode等),通过这些变量控制游戏的不同阶段。
2. 随机生成卡片
在gameMapInit(mode)函数中,根据选择的模式(简单或困难)生成一个随机的卡片矩阵。
卡片的生成使用random.randint(1, 7)来确保每个位置都有有效的卡片。
3. 事件处理
在handleEvent()函数中,通过事件循环来处理用户的输入。
使用鼠标点击事件来选择游戏模式、移动卡片、重启游戏或返回主菜单。
4. 卡片移动和消除逻辑
在move_card_to_box(i, j)函数中,检查卡片的目标位置,如果目标位置为空,则将卡片移动到该位置。
使用check_and_remove_cards(row, col)函数检查是否有相邻的卡片可以消除,并根据条件更新得分。
5. 游戏结束检测
在check_game_over()函数中,检查最后一行是否已满,如果已满,则记录最高得分并重置游戏状态。
通过record_high_score(score)函数记录当前得分,保持最高得分记录的排序。
实现思路图表
以下是实现思路的流程图,展示了游戏的主要逻辑和流程:
+-----------------------+
| Start Game |
+-----------------------+
|
v
+-----------------------+
| Display Mode Menu |
+-----------------------+
|
v
+-----------------------+
| User Selects Mode |
+-----------------------+
|
v
+-----------------------+
| Initialize Game |
| Map and Variables |
+-----------------------+
|
v
+-----------------------+
| Main Game Loop |
| - Handle Events |
| - Draw Game State |
| - Update Logic |
+-----------------------+
|
v
+-----------------------+
| Check Game Over? |
+-----------------------+
|
v
+------No-------+
| |
v v
+-----------------------+
| Update Game State |
+-----------------------+
|
v
+-----------------------+
| Game Over Screen |
+-----------------------+