Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

ERRO

Fiz meu código conforme o exemplo, mas quando tento rodar recebo o seguinte erro: 36: syntax error, unexpected keyword_end

Mas não estou encontrando, se eu tiro esse end da linha 36 continua com erro...

def da_boas_vindas
    puts "Olá, bem-vindo ao jogo da forca"
    puts "Qual é o seu nome?"
    nome = gets.strip
    puts "\n\n\n\n\n\n"
    puts "O jogo já vai começar #{nome} !"
    nome
end

def sorteia_palavra_secreta
    puts "Estamos sorteando a palavra secreta..."
    palavra_secreta = "programador"
  puts "Escolhemos uma palavra secreta com #{palavra_secreta.size} letras... Boa sorte!"
  palavra_secreta
end

def joga(nome)
  palavra_secreta = sorteia_palavra_secreta
  erros = 0
  chutes = []
  pontos_ate_agora = 0
  puts "Você ganhou #{pontos_ate_agora} pontos."
end

def nao_quer_jogar
    puts "Deseja jogar novamente? (S/N) "
    quero_jogar = gets.strip
    nao_quero_jogar = quero_jogar.upcase == "N"
end

nome = da_boas_vindas

loop do
    joga nome
        break if nao_quer_jogar ?
end
1 resposta
solução!

Oi Rose, tudo bem? Vou te dizer qual é o problema.

Primeiro, o def nao_quer_jogar está sem interrogação. que deveria ser def nao_quer_jogar?, mas isso não é o que está causando o problema.

Segundo, antes da linha 36, você tem a seguinte instrução: break if nao_quer_jogar ? onde há um espaço entre o nome do método e o ponto de interrogação. Esse espaço importa e vai ser interpretado pelo Ruby como uma outra coisa (quase uma condição ternária)

Solução? Simples. remova a interrogação! Ouuuuuu... Adicione a interrogação no nome no método (sem espaço) dessa forma:

def nao_quer_jogar?
    puts "Deseja jogar novamente? (S/N) "
    quero_jogar = gets.strip
    nao_quero_jogar = quero_jogar.upcase == "N"
end

e

loop do
    joga nome
    break if nao_quer_jogar?
end

Entendeu? Faz o teste =)Bons estudos, espero ter ajudado!