Appearance
栈、队列和链表的综合应用
项目简介
接下来我们希望大家利用栈、队列和链表的知识,来实现一个经典的游戏——祖玛。
祖玛是一种经典的休闲益智类消除游戏。游戏中,若干带有不同颜色的彩球会沿着固定轨道依次排列或移动,玩家需要不断发射新的彩球,并将其插入到轨道上的彩球序列中。
当轨道上出现连续三个或三个以上相同颜色的彩球时,这些彩球会被自动消除。消除后,原本分开的两段彩球会重新连接,如果连接后再次形成连续三个或三个以上相同颜色的彩球,则会继续发生消除,这种现象称为连锁消除。
例如,当前轨道为:
text
R R B B B R R其中 B B B 是连续三个相同颜色的彩球,会被消除。消除后,左右两边的 R R 会连接起来,形成:
text
R R R R此时又出现了连续四个 R,因此会继续消除。最终轨道变为空。
在真实的祖玛游戏中,彩球通常会沿轨道不断前进,玩家需要在彩球到达终点前尽可能消除它们。本项目为了突出数据结构的使用,对游戏规则进行简化:轨道上的彩球不自动移动,玩家每次从待发射彩球队列中取出一个彩球,并选择插入到轨道的指定位置。如果插入后形成连续三个或三个以上相同颜色彩球,则执行消除和连锁消除。
程序应至少支持彩球轨道初始化、彩球发射、指定位置插入、自动消除、连锁消除、撤销操作以及游戏胜负判断。我们希望你可以设计一些自己的小道具功能来增加游戏性和数据结构的运用。
项目要求
- 数据结构设计:合理设计数据结构来表示彩球轨道、待发射彩球队列以及游戏状态。
- 功能实现:实现彩球轨道初始化、彩球发射、指定位置插入、自动消除、连锁消除、撤销操作以及游戏胜负判断等功能。
- 用户交互:设计简单的用户界面(命令行或图形界面)来与玩家进行交互(我们鼓励大家探索图形化的用户界面,但并不强制要求)。
- 代码质量:编写清晰、可维护的代码,并添加适当的注释和文档。
报告内容
你的实验报告需要至少包含以下要点:
- 你的设计思路(可以直接给出你的prompt)
- 各个核心功能函数的代码原理解释
- 运行说明
评分标准
- 功能实现(30%):根据项目要求设计功能,并实现。你需要提供你的功能设计思路在实验报告中。注:要求中的额外小道具功能属于评分的一部分。
- 数据结构设计(30%):合理设计数据结构来支持游戏功能的实现,你需要在报告中说明选择此类数据结构的原因和优点。
- 用户交互(20%):设计友好的用户界面来与玩家进行交互。
- 代码质量(20%):编写清晰、可维护的代码,并添加适当的注释和文档。
注:以上评分标准同时基于你的报告和实际程序内容进行评估。