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

(NoMethodError)

def escolhe_palavra_secreta
    avisa_escolhendo_palavra
    texto = File.Read "dici.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

boa tarde

estou em um impa-se nao sei como proceguir... segue o erro

C:/forca/forca.rb:5:in escolhe_palavra_secreta': undefined methodRead' for File:Class (NoMethodError) from C:/forca/forca.rb:37:in joga' from C:/forca/forca.rb:80:inblock in

' from C:/forca/forca.rb:79:in loop' from C:/forca/forca.rb:79:in'

poderiam me orientar?

4 respostas

Oi Douglas tudo certo ?

O erro está acontecendo porque a gente está lendo o arquivo de texto da maneira incorreta. O certo seria:

texto = File.read ("dici.txt");

o erro mudo agora!!

C:/forca/forca.rb:5:in `read': No such file or directory @ rb_sysopen - dici.txt (Errno::ENOENT)
        from C:/forca/forca.rb:5:in `escolhe_palavra_secreta'
        from C:/forca/forca.rb:37:in `joga'
        from C:/forca/forca.rb:80:in `block in <main>'
        from C:/forca/forca.rb:79:in `loop'
        from C:/forca/forca.rb:79:in `<main>'

O ruby está dizendo que não existe o arquivo dici.txt

Esse é o documento em que estamos guardando as palavras secretas, você criou ele certo ?

No curso a gente chama o arquivo de dicionario.txt, então acho que você trocou esse nome. Lembrando que o arquivo dicionario.txt tem que estar na mesma pasta onde você está salvando o código ruby.

texto = File.read ("dicionario.txt");
solução!

problema resolvido eu mudei o arquivo para dicionario.rb

ef escolhe_palavra_secreta
    avisa_escolhendo_palavra
    texto = File.read ("dicionario.rb")
    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