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

Undefined method ".chars"

Quando coloquei a máscara no exercício anterior, o jogo rodou normalmente. Porém após criar o dicionário, começou a acusar o seguinte erro:

forca.rb:14:in `palavra_mascarada': undefined method `chars' for []:Array (NoMethodError)

O trecho do código é esse

def palavra_mascarada chutes, palavra_secreta
    mascara = ""
    for letra in palavra_secreta.chars
        if chutes.include? letra
            mascara += letra
        else
            mascara += "_"
        end
    end
    mascara
end

Dei uma pesquisada e a resposta que vi é que "ruby 1.8 has no instance method called "chars" in the String class.". Porém minha versão do ruby não é a 1.8 e, se fosse isso, não teria funcionado anteriormente.

5 respostas

Olá, Mayra.

Qual o retorno do seguinte comando em um terminal?

ruby -v

Olá, Alexandre. O retorno é:

ruby 2.3.3p222 (2016-11-21 revision 56859) [x64-mingw32]

Olhei de novo o erro e ele não está reclamando do uso de chars numa String mas num Array:

undefined method `chars' for []:Array (NoMethodError)

Você usa isso no palavra_secreta. Verifique se você está passando um Array so invés de um String nesse parâmetro.

Como está sua chamada do método palavra_mascarada?

solução!

Encontrei o erro, Alexandre. Não estava retornando o palavra_secreta na "def avisa_palavra_escolhida"

Obrigada :)

Bacana, Mayra!