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('')whileTrue: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])breakif 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]breakif tipo_atk==3:exec("vida=ataques."+self.jogador_X[4]+"(j_atk,j_def,'X')")
jogador_X=vida[0]
self.jogador_Y=vida[1]breakexcept: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('')whileTrue: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])breakif 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]breakif 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]breakexcept:print('Digito invalido!!!')#...##...#
Pergunta
Higor Cruz Balthazar
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!!!
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.