三国志战略版战报 (图片源自于知乎)
模拟实现效果图
思路分析:
回合制游戏;
双方阵营的武将行动完毕为一个回合;
武将行动:
武将最多携带三个技能,行动时首先会尝试释放技能,对敌伤害或者对己治疗增益(有发动概率,一般技能越强发动概率越低);之后进行普攻,随机攻击地方目标
行动顺序:
依照'武将速度'决定行动顺序
目标选择、伤害计算、治疗恢复、减益效果、增益效果等等,将后续说明;
代码分析:
回合框架部分:
generals为参加战斗模拟的武将合集
round_num为回合,第八回合双方都存活,视为'战平'
# 战斗回合模拟 round_num = 1 while round_num <= 8: print(f"\n----- 第 {round_num} 回合 -----") battle_round(generals, round_num) if check_victory(generals): break round_num += 1 else: print("战斗结束,双方平局。")
武将行动部分:
根据武将速度值决定行动顺序
技能释放部分
普攻部分
def battle_round(generals, round_num): """执行每一回合的战斗""" generals = sorted(generals, key=lambda g: g.speed, reverse=True) # 根据速度排序 # 处理每个武将的回合 for general in generals: if general.is_alive(): print(f"\n{general.display_name()} 的回合,敌方阵营存活目标:", end="") enemies = [g.display_name() for g in generals if g.camp !=general.camp and g.is_alive()] print("、".join(enemies)) # 技能释放处理 skill_used = general.execute_skill(generals, skip_skills) # 普通攻击处理 targets = general.select_targets(generals, 1) if targets: target = targets[0] general.attack(target)
跳转下篇:
Python实现:模拟'三国志战略版'的回合制战报2-CSDN博客
在此声明:
本程序仅是使用python实现回合制战报;未考虑实用性等情况;
部分代码由Chat-gpt生,再由本人修整后发出;