代码实现
def warrior_attack():
print("战士进行近战攻击")
def warrior_skill():
print("战士释放技能:冲锋")
def mage_attack():
print("法师进行远程魔法攻击")
def mage_skill():
print("法师释放技能:火球术")
def assassin_attack():
print("刺客进行潜行攻击")
def assassin_skill():
print("刺客释放技能:暗影突袭")
def get_character_actions(character_type):
action_dict = {
"战士": (warrior_attack, warrior_skill),
"法师": (mage_attack, mage_skill),
"刺客": (assassin_attack, assassin_skill)
}
return action_dict.get(character_type, (None, None))
# 示例调用
character_type = "战士"
attack_func, skill_func = get_character_actions(character_type)
if attack_func:
attack_func()
if skill_func:
skill_func()
设计思路
- 函数定义:为每种角色的攻击和技能分别定义独立的函数,这样可以使代码结构清晰,每个函数专注于实现特定角色的特定行为,也便于后期对单个角色的行为进行修改和扩展。
- 字典映射:使用字典
action_dict
来模拟 switch case
语句的功能。字典的键是角色类型,值是包含该角色攻击函数和技能函数的元组。通过角色类型作为键,可以快速定位到对应的函数。
- 扩展性:如果需要添加新的角色,只需要定义新角色的攻击和技能函数,并在
action_dict
中添加对应的键值对即可,不需要对现有代码结构进行大规模修改,满足良好的扩展性要求。
- 可读性:每个角色的行为都有单独的函数定义,代码逻辑一目了然,提高了代码的可读性。同时通过字典映射的方式,使根据角色类型选择相应行为的逻辑简洁明了。