Ola , estou com problemas nesse código abaixo , ele é basicamente um jogo que eu estou criando para fins acadêmicos , a minha função 'ataque' esta com problemas nas linhas demarcadas por #**************************# pois ela não faz o que deveria fazer e devolve "NameError: name 'vida' is not defined" . Essa linhas seriam as responsáveis por executar uma função de outro arquivo e retornar o resultado(na forma de lista) dele, porem ele devera acessar o arquivo por meio da interação do usuário que enviara um valor de uma lista, essa lista é uma instancia da classe partida, que por sua vez foi criada pelo método especial __init__(self, ...).
PRECISO DE AJUDA E SUGESTÕES PARA RESOLVER ESSE PROBLEMA!!!
class partida(object):
#...#
#...#
def ataque(self,j_atk,j_def):
'''ira fazer o ataque e a defesa'''
import sys
sys.path.append("Teste_Armazenamento_de_Dados/ATAQUES")
#ordem: nome,tipo,ataque_normal,ataque especial-1,ataque especial-2,defesa#
Ataques_normal=['soco','facada','espada','mordida']
Ataques_especial=['dark magic','arremeço','bola de fogo','rasengan','chidori','rasenshuriken','chidori nagashi','paralizado','cura','teletransporte']
if j_atk[0]==self.jogador_X[0]:
print('Voce pode usar o ataque simples '+self.jogador_X[2]+' ,')
print('')
print('usar o ataque especial 1 '+self.jogador_X[3])
print('')
print('ou usar o ataque especial 2 '+self.jogador_X[4])
print('')
while True:
try:
tipo_atk=int(input('Qual ataque voce deseja usar:\n '+self.jogador_X[2]+'(1) ,'+self.jogador_X[3]+'(2) ,'+self.jogador_X[4]+'(3) \n>>> '))
if tipo_atk==1:
exec('import '+self.jogador_X[2]) #**************************#
exec("vida="+self.jogador_X[2]+"ATAQUE_NORMAL(j_atk,j_def,'X'") #**************************#
self.jogador_X=vida[0]
self.jogador_Y=vida[1]
print(self.jogador_X[1][0],self.jogador_Y[1][0])
break
if tipo_atk==2:
exec("vida=ataques."+self.jogador_X[3]+"(j_atk,j_def,'X')")
self.jogador_X=vida[0]
self.jogador_Y=vida[1]
break
if tipo_atk==3:
exec("vida=ataques."+self.jogador_X[4]+"(j_atk,j_def,'X')")
jogador_X=vida[0]
self.jogador_Y=vida[1]
break
except:
print('Digito invalido!!!')
if j_atk[0]==self.jogador_Y[0]:
print('Voce pode usar o ataque simples '+self.jogador_Y[2]+' ,')
print('')
print('usar o ataque especial 1 '+self.jogador_Y[3])
print('')
print('ou usar o ataque especial 2 '+self.jogador_Y[4])
print('')
while True:
try:
tipo_atk=int(input('Qual ataque voce deseja usar:\n '+self.jogador_Y[2]+'(1) ,'+self.jogador_Y[3]+'(2) ,'+self.jogador_Y[4]+'(3) \n>>> '))
if tipo_atk==1:
exec('import '+self.jogador_X[2])
vida=ATAQUE_NORMAL(j_atk,j_def,'Y')
self.jogador_X=vida[0]
self.jogador_Y=vida[1]
print(self.jogador_X[1][0],self.jogador_Y[1][0])
break
if tipo_atk==2:
exec("vida=ataques."+self.jogador_Y[2]+"(j_atk,j_def,'Y')")
self.jogador_X=vida[0]
self.jogador_Y=vida[1]
break
if tipo_atk==3:
exec("vida=ataques."+self.jogador_Y[2]+"(j_atk,j_def,'Y')")
self.jogador_X=vida[0]
self.jogador_Y=vida[1]
break
except:
print('Digito invalido!!!')
#...#
#...#