以下是一个使用 Python 实现该“主动技”功能的简单代码示例,假设我们有一个角色类,角色有技能列表,并且有一个全局的技能池。 ```python # 定义技能类 class Skill: def __init__(self, name, is_limit_skill=False): # 技能名称 self.name = name # 是否为限定技 self.is_limit_skill = is_limit_skill def __str__(self): return self.name # 定义角色类 class Character: def __init__(self, name, skills): # 角色名称 self.name = name # 角色拥有的技能列表 self.skills = skills # 记录本回合是否已经使用过主动技 self.used_active_skill_this_round = False def active_skill(self, skill_pool): # 检查本回合是否已经使用过主动技 if self.used_active_skill_this_round: print(f"{self.name} 本回合已经使用过主动技,无法再次使用。") return # 筛选出不是场上角色技能且非限定技的技能 available_skills = [skill for skill in skill_pool if skill not in self.skills and not skill.is_limit_skill] # 检查是否有至少三个可用技能 if len(available_skills) < 3: print(f"可用技能不足三个,无法使用主动技。") return # 随机选择三个技能 import random selected_skills = random.sample(available_skills, 3) print(f"{self.name} 可以从以下三个技能中选择一个:") for i, skill in enumerate(selected_skills, 1): print(f"{i}. {skill}") # 让用户选择一个技能 while True: try: choice = int(input("请输入你要选择的技能编号 (1-3): ")) if 1 <= choice <= 3: chosen_skill = selected_skills[choice - 1] self.skills.append(chosen_skill) print(f"{self.name} 获得了技能: {chosen_skill}") self.used_active_skill_this_round = True break else: print("输入的编号无效,请输入 1-3 之间的数字。") except ValueError: print("输入无效,请输入一个整数。") # 示例使用 # 创建一些技能 skill1 = Skill("技能1") skill2 = Skill("技能2") skill3 = Skill("技能3") skill4 = Skill("技能4") skill5 = Skill("技能5", is_limit_skill=True) # 创建一个技能池 skill_pool = [skill1, skill2, skill3, skill4, skill5] # 创建一个角色 character = Character("角色1", []) # 使用主动技 character.active_skill(skill_pool) ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 技能筛选时要确保准确排除场上角色已有的技能和限定技,避免逻辑错误。 2. 处理用户输入时,要考虑各种异常情况,如输入非整数、输入超出范围的数字等,保证程序的健壮性。 3. 每回合使用主动技的限制需要正确记录和检查,防止角色多次使用主动技。 [2025-08-06 19:38:00 | AI写代码神器 | 782点数解答]