def fight(self, enemy, Seat): print('=========战斗开始=========') # 创建进攻方和防守方 atk = [self] defc = [enemy] atkpoint = 0 defcpoint = 0 # 创建询问队列 ask = [] for r in Seat: if r.dead == 0: ask.append(r) for r in ask: if self.name == r.name: ask.remove(r) for r in ask: if enemy.name == r.name: ask.remove(r) # 建立进攻方、防守方 for r in ask: if r.ai == 0: agree = r.askPlayerFight(self, enemy) else: agree = r.askAIFight() if agree == 1: atk.append(r) elif agree == 2: defc.append(r) print('进攻方:', end=' ') for r in atk: print(r.name, end=' ') print() print('防守方:', end=' ') for r in defc: print(r.name, end=' ') print() # 装备武器 for r in atk: r.fighthurt = 1 r.equipWeapon() for r in defc: r.fighthurt = 1 r.equipWeapon() # 计算进攻指数 for r in atk: for g in r.equip: if g.id >= 5 and g.id <= 9: atkpoint += g.attack atkpoint += r.hp # 计算防守指数 for r in defc: for g in r.equip: if g.id >= 5 and g.id <= 9: defcpoint += g.attack defcpoint += r.hp # 显示战斗结果 Else.load('战斗中', 3) print('=========战斗总结=========') time.sleep(1) print('进攻方体力值共计 {} 点,防守方体力值共计 {} 点'.format(atkpoint, defcpoint), end=',') if atkpoint > defcpoint: print('进攻方获胜!') time.sleep(0.5) print('=========战斗结束=========') return 1 else: print('防守方获胜!') time.sleep(0.5) print('=========战斗结束=========') return 0
# 获取身份 Me = role # 角色中去掉玩家获取身份,防止出现身份重复的情况 Roles.pop(number - 1) # 打乱角色集合 random.shuffle(Roles) # 游戏AI获取身份 for i in range(playernum - 1): Roles[0].ai = i + 1 AI.append(Roles[0]) Roles.pop(0) # 展示所有人身份 print('==========================') Else.showNameSkill('我:', Me) Else.load('正在分配AI角色', 4) for i in range(playernum - 1): Else.showNameSkill('AI{}号:'.format(i + 1), AI[i]) time.sleep(0.5) print('==========================') # 分配喜爱和憎恨的人 Else.load('正在分配喜爱和憎恨的人', 3) Else.loverorhater(playernum, Me, AI, 'lover') time.sleep(0.5) Else.loverorhater(playernum, Me, AI, 'hater') print('==========================') time.sleep(0.5) Else.load('即将登船', 3)