Ir para conteúdo
Fórum Script Brasil
  • 0

Problema com método para retornar valores


Higor Cruz Balthazar

Pergunta

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!!!') 
                    
    #...#
    #...#
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

 

Hi, I'm having problems in this code below, it's basically a game that I'm creating for academic purposes, my 'attack' function is having problems on the lines marked by # ************************** # because it does not do what it should ,it returns "NameError: name 'life' is not defined". These lines would be responsible for executing a function from another file and returning the result (in list type) of it, but it should access the file through the user interaction that sent a value from a list, this list is an instance of class, which in turn was created by the special method __init __ (self, ...).

I NEED HELP AND SUGGESTIONS TO SOLVE THIS PROBLEM !!!

Editado por Higor Cruz Balthazar
ortografia
Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...