题目传送门
这是本人第一次写大模拟的题解,望管理大大过审,万分感谢!
分析(会将每个部分的重点内容截出来+对应代码段):
做大模拟题时我们要每一段地去细心地读下去(特别是题目贼长的题,比如本题)。
【世界观】:
这个世界的人分为三类,根据其某种特点被直接命名为 W e a k Weak Weak, A v e r a g e Average Average 和 S t r o n g Strong Strong。
enum HumanRace{
Weak=0,
Average=1,
Strong=2;
}
【人物】:
一个人有以下几种属性值:种族、等级、体力上限、基础攻击指数、基础防御指数、主动技能等级、被动技能等级。
struct Human{
HumanRace race;
int level;
int max_health;
int base_attack;
int base_defend;
int active_skill_level;
int passive_skill_level;
}
【武器】:
武器的属性只有两种:武器类型和武器攻击力。所有武器都有普通攻击和特殊攻击两种攻击方式。
武器有三种类型,分别叫做 B B B、 G G G、 M M M。
enum WeaponKind{
B=1,
G=2,
M=3
}
struct Weapon{
WeaponKind kind;
int attack;
}
【战场与队伍】:
这里定义了一个奇怪的战队顺序,目前看不出来有啥用,所以先放着不管。
【回合】:
每个回合中,只有一个人可以行动。
这一段讲了一下一个回合是啥。但是我们不知道什么是行动,故读完了这一段后并不能直接给出对应的代码。
【行动】:
整段都挺重要的,自己回去看题面,我这里就不粘上来了
enum Action{
SimpleAttack=1,
SpecialAttack=2,
ActiveSkill=3,
}
【伤害计算】:
一个人的防御指数等于这个人的基础防御指数乘以队伍的防御加成。具体地,若一个人受到攻击