Rose, reparei que você salva a pontuação de um jogador (no método salva_ponto
, suponho) e, apesar desse método não ter sido incluso na mensagem anterior, imagino que esteja fazendo isso em uma variável chamada dados
.
Talvez tenha identificado o erro aqui:
if avisa_quem_ta_ganhando[1] < pontos_totais
salva_ponto nome, pontos_totais
end
Seu método avisa_quem_ta_ganhando
recebe um argumento dados
mas na sua chamada nesse trecho você não passou nenhum parâmetro para ele, lançando a exceção seguinte.
'avisa_quem_ta_ganhando': wrong number of arguments (given 0, expected 1) (ArgumentError)
Você precisa fazer duas coisas aqui, pelo menos:
1. criar o método salva_ponto
que guarda o nome e pontuação do usuário na variável dados
caso a pontuação do usuário atual seja maior do que a pontuação já gravada
2. passar a variável dados
como argumento ao conferir os pontos totais
Lembrando que você precisa primeiro atualizar, se necessário, a variável dados
e depois chamar o avisa_quem_ta_ganhando
. Outra coisa a prestar atenção é que para utilizar uma variável global é necessário declará-la e chamá-la com um @
antes. Então dados
seria @dados
.
Se quiser ler minha sugestão, leia abaixo, se não, pule o restante da minha resposta!
.
.
.
.
.
.
@dados = ["ninguém", 0]
def salva_ponto nome, pontos_totais
if @dados[1] < pontos_totais
@dados[0] = nome
@dados[1] = pontos_totais
end
end
# no método joga()
if @dados[1] < pontos_totais
salva_ponto nome, pontos_totais
avisa_quem_ta_ganhando @dados
end