#S0018. 物品合成与配方验证
物品合成与配方验证
1. 问题描述
🎮 游戏中的合成机制
在《塞尔达传说》或《原神》中,玩家可以通过收集材料合成道具:
- 配方:如 "火焰箭 = 木箭×3 + 红宝石×1"
- 合成规则:若材料足够则扣除材料并生成道具,否则失败
- 动态配方:允许运行时添加新配方(如游戏更新)
🛠️ 任务
实现一个合成系统,支持以下命令:
add_recipe 配方名 材料1×数量 材料2×数量...(如add_recipe 火焰箭 木箭×3 红宝石×1)collect 玩家 材料 数量(如collect 林克 木箭 5)craft 玩家 配方名(如craft 林克 火焰箭)end结束并输出玩家背包
规则:
- 合成前检查玩家材料是否足够
- 成功时扣除材料并添加成品,输出
[成功] 玩家 合成了 配方名 - 失败时输出
[失败] 材料不足
2. 输入和输出
输入方式:
- 多行指令,最后一行是
end
输出方式:
- 每次合成尝试立即输出结果
- 最终按玩家名字顺序输出背包(格式:
玩家: 材料1×数量, 材料2×数量...)
示例
# 输入:
add_recipe 火焰箭 木箭×3 红宝石×1
collect 林克 木箭 10
collect 林克 红宝石 2
craft 林克 火焰箭
craft 林克 火焰箭
end
# 过程输出:
[成功] 林克 合成了 火焰箭
[成功] 林克 合成了 火焰箭
# 最终输出:
林克: 木箭×4, 红宝石×0, 火焰箭×2
# 输入:
add_recipe 药水 草药×2 水×1
collect 塞尔达 草药 1
craft 塞尔达 药水
end
# 过程输出:
[失败] 材料不足
# 最终输出:
塞尔达: 草药×1, 水×0