# 25-selection **Repository Path**: bhzyxy/25-selection ## Basic Information - **Project Name**: 25-selection - **Description**: 用于25级学生的选拔 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-29 - **Last Updated**: 2025-12-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 题目描述 在一个简化的回合制战斗游戏中,有两个角色:玩家和怪物。每个角色都有生命值(HP)、攻击力(ATK)和防御力(DEF )。游戏规则如下: **战斗开始**:双方初始都有各自的生命值、攻击力和防御力。 **回合机制**:战斗以回合制进行,玩家先行动,然后怪物行动,如此循环,直到其中一方生命值降为 0 或以下。 **伤害计算**:每次攻击造成的实际伤害等于攻击者的攻击力减去防御者的防御力,但伤害不能为负数。如果攻击力小于 防御力,伤害为 0。 **特殊攻击**:玩家每 3 回合可以进行一次特殊攻击,特殊攻击造成的伤害是普通攻击的 2 倍。 **怪物反击**:当怪物的生命值低于其初始生命值的 30% 时,它会在每次行动时进行一次反击,反击造成的伤害是其普通攻击的 1.5 倍。 # 题目要求 编写一个 C 语言程序,模拟这场战斗。 程序需要输入玩家和怪物的初始生命值、攻击力和防御力,然后模拟战斗过程,输出每回合的战斗信息(包括谁攻击了谁 、造成了多少伤害、双方剩余的生命值),最后输出战斗的结果(玩家胜利还是怪物胜利)。 # 示例输入输出 假设输入如下: ```txt 玩家初始生命值: 100 玩家攻击力: 20 玩家防御力: 10 怪物初始生命值: 80 怪物攻击力: 15 怪物防御力: 5 ``` 可能的输出如下: ```txt 回合 1: 玩家攻击怪物,造成 15 点伤害,怪物剩余生命值: 65 怪物攻击玩家,造成 5 点伤害,玩家剩余生命值: 95 回合 2: 玩家攻击怪物,造成 15 点伤害,怪物剩余生命值: 50 怪物攻击玩家,造成 5 点伤害,玩家剩余生命值: 90 回合 3: 玩家进行特殊攻击,造成 30 点伤害,怪物剩余生命值: 20 怪物攻击玩家,造成 5 点伤害,玩家剩余生命值: 85 回合 4: 玩家攻击怪物,造成 15 点伤害,怪物剩余生命值: 5 怪物进行反击,造成 7 点伤害,玩家剩余生命值: 78 回合 5: 玩家攻击怪物,造成 15 点伤害,怪物剩余生命值: 0 玩家胜利! ``` # 考察点 1. 选择结构的综合运用:需要使用 if - else 语句来判断是否进行特殊攻击、怪物是否反击,以及判断战斗是否结束等 。 2. 循环结构的结合:使用循环来模拟回合制战斗的过程。 3. 逻辑思维能力:理清战斗的规则和流程,正确计算伤害和判断各种情况。 4. 数据处理能力:处理玩家和怪物的属性数据,并在每回合更新生命值。 # 提交答案要求 1. 没有学分,所以想拿学分的同学不用看了。 2. 不许使用大模型直接生成答案。可以使用搜索引擎,但不能直接生成答案。 3. 每人提交时新建一个文件夹,文件夹命名方式例如:“25网络1-张三” 4. 文件夹中需要包含以下文件: - 源代码文件(C 语言文件) - README.md 文件,描述程序的功能和运行方法,包含运行结果(可以是截图,也可以是文字)