首页 > 试题广场 >

RPG 游戏战斗伤害计算器

[编程题]RPG 游戏战斗伤害计算器
  • 热度指数:54 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

你的任务是根据《战斗伤害公式 (v1.0)》,计算攻击者对目标造成的最终伤害值。

你需要写一个 Prompt,把用户的输入转换成我们规定的 JSON 格式。

知识库素材 (Knowledge Base)

《战斗伤害公式 (v1.0)》
[C.1] 基础伤害:(攻击力 - 防御力)。如果防御力 >= 攻击力,基础伤害为 1 点(强制扣血)。
[C.2] 属性克制:
    - "水" 克 "火":最终伤害 x 2 (200%)。
    - "火" 克 "草":最终伤害 x 2 (200%)。
    - "草" 克 "水":最终伤害 x 2 (200%)。
    - 其他属性关系(如同属性或无克制):伤害系数 x 1。
[C.3] 暴击规则:
    - 如果攻击被判定为 "暴击 (Critical Hit)",在计算完属性克制后,伤害额外 +50%。
    - 计算公式:(基础伤害 * 属性倍数) * 1.5。
[C.4] 护盾机制(优先级最高):
    - 如果目标状态为 "无敌 (Invincible)",则免疫所有伤害,最终伤害为 0。
    - 此规则覆盖 [C.1]、[C.2]、[C.3]。

输入描述:
一段包括攻击者属性、攻击力、是否暴击;目标属性、防御力、特殊状态的自然语言。


输出描述:
{
  "damage_dealt": Integer, //最终造成伤害,向下取整
  "is_critical": Boolean, //是否触发暴击
  "reaction": "String" //触发的反应描述,如 "Water vs Fire (Double Damage)", "Invincible", "Normal"
}

示例1

输入

我方角色是 火属性,攻击力 100,本次攻击触发了 暴击。敌方怪物是 草属性,防御力 20,无特殊状态。

输出

{
"damage_dealt": 240,
"is_critical": true,
"reaction": "Fire vs Grass (Double Damage)"
}

备注:
提示词学习 提示词工程指南

这道题你会答吗?花几分钟告诉大家答案吧!