Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

undefined method todas_as_palavras' for main:Object (NoMethodError) "

def escolhe_palavra_secreta
    avisa_escolhendo_palavra
    texto = File.read ("dicionario.txt")
    todas_as_palavras = texto.split "\n"
    numero_escolhido = rand(todas_as_palavras.size)
    palavra_secreta = todas_as_palavras(numero_escolhido)
    avisa_palavra_escolhida palavra_secreta
end    

Nao consigo identificar o erro. Segue a msg q aparece "Escolhendo uma palavra secreta... /forca.rb:8:in escolhe_palavra_secreta': undefined methodtodas_as_palavras' for main:Object (NoMethodError) " --- Linha 8 é "palavra_secreta = todas_as_palavras(numero_escolhido)"

3 respostas

Fala ai Carolina, tudo bem? Olhando o erro informado para você:

forca.rb:8:in escolhe_palavra_secreta': undefined method todas_as_palavras' for main:Object (NoMethodError)

Está dizendo que não foi encontrado o método (função) chamado todas_as_palavras, isso porque você está tentando chamá-la como um método, mas, a no caso o todas_as_palavras seria uma variável.

Vamos ver seu código:

def escolhe_palavra_secreta
    avisa_escolhendo_palavra
    texto = File.read ("dicionario.txt")
    todas_as_palavras = texto.split "\n"
    numero_escolhido = rand(todas_as_palavras.size)
    palavra_secreta = todas_as_palavras(numero_escolhido)
    avisa_palavra_escolhida palavra_secreta
end   

Repare na linha que aponta o problema:

palavra_secreta = todas_as_palavras(numero_escolhido)

Você está tentando chamar uma função, acho que o ideal seria trocar os parenteses () por colchetes [], ficando:

palavra_secreta = todas_as_palavras[numero_escolhido]

A função completa ficaria:

def escolhe_palavra_secreta
    avisa_escolhendo_palavra
    texto = File.read ("dicionario.txt")
    todas_as_palavras = texto.split "\n"
    numero_escolhido = rand(todas_as_palavras.size)
    palavra_secreta = todas_as_palavras[numero_escolhido]
    avisa_palavra_escolhida palavra_secreta
end   

Acredito que com essa mudança o problema deve ser resolvido.

Espero ter ajudado.

solução!

Ninguem respondeu e resolvi sozinha.

Boa Carolina, fico feliz que tenha resolvido seu problema.

Peço desculpas pela falta de resposta, com tanta dúvida a gente as vezes acaba demorando um pouco mais do que o normal/esperado.

De qualquer maneira, parabéns por ter resolvido o problema por conta própria.

Sempre que precisar não deixe de criar sua dúvidas.

Abraços e bons estudos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software