以下是一个使用 Python 实现这个功能的简单代码示例。假设我们有一个技能列表,其中包含场上角色技能和非场上角色技能,并且可以区分限定技和非限定技。 ```python # 定义技能类 class Skill: def __init__(self, name, is_on_field=False, is_limited=False): # 技能名称 self.name = name # 是否为场上角色的技能 self.is_on_field = is_on_field # 是否为限定技 self.is_limited = is_limited # 定义所有技能列表 all_skills = [ Skill("技能1", is_on_field=False, is_limited=False), Skill("技能2", is_on_field=False, is_limited=False), Skill("技能3", is_on_field=False, is_limited=False), Skill("技能4", is_on_field=False, is_limited=True), Skill("技能5", is_on_field=True, is_limited=False), Skill("技能6", is_on_field=False, is_limited=False) ] import random def get_active_skill(): # 筛选出不是场上角色的技能且非限定技 eligible_skills = [skill for skill in all_skills if not skill.is_on_field and not skill.is_limited] # 随机选择三个技能 selected_skills = random.sample(eligible_skills, min(3, len(eligible_skills))) # 从三个技能中随机选择一个 final_skill = random.choice(selected_skills) return final_skill # 调用函数获取主动技能 active_skill = get_active_skill() print(f"获得的主动技能是: {active_skill.name}") ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 确保技能列表的初始化和筛选逻辑正确,特别是场上角色技能和限定技的判断条件。 2. 当符合条件的技能数量不足三个时,要注意 `random.sample` 函数的使用,避免出现索引错误。 3. 代码中使用了随机选择,在实际应用中要考虑随机数的种子是否需要固定,以保证可重复性测试。 [2025-08-06 19:24:10 | AI写代码神器 | 497点数解答]