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

ESTOU TENTANDO DESENVOLVER ALGO DIFERENTE MAS ESTOU COM DIFICULDADES

Fala pessoal. Estou tentando fazer algo um pouco diferente nessa aula, pra treinar essa extração de código. Mas estou com dificuldades.

Vou digitar o código abaixo, tem um comentário nele que é o que eu gostaria de fazer.

def tentativas(tentar)
  puts "\n" + "Essa é a tentativa " + tentar.to_s + " de " + "5"
  print "Digite um número ~> "
  numero_digitado = gets
  puts "Daniel, " + "você escolheu o número " + numero_digitado.chomp + ", será que está certo?"
  return numero_digitado.to_i
end

def verifica_se_acertou
  numero_secreto = 1
  # não estou conseguindo pegar o número digitado e armazenar aqui.
  acertou = numero_secreto == numero_digitado
  if acertou
    puts "Acertou"
  else
    puts "Errou"
  end

end

for tentar in 1..5
  tentar = tentativas(tentar)
end

3 respostas
solução!

Esse conceito de pegar uma função e executar dentro de outra, passando parâmetros, ainda estão meio complexos na minha cabeça, acho que preciso treinar mais.

Só lembrando que está tudo ok com o código do professor, eu só tentei fazer da minha maneira, meio que de cabeça e aí vi que esses conceitos de função e como passar os parâmetros ainda não estão claros na minha cabeça.

Eu consegui resolver com o seguinte código abaixo. Vê se tá coerente ~>

def tentativas(tentar)
  puts "\n" + "Essa é a tentativa " + tentar.to_s + " de " + "5"
  print "Digite um número ~> "
  numero_digitado = gets
  puts "Daniel, " + "você escolheu o número " + numero_digitado.chomp + ", será que está certo?"
  verifica_se_acertou(numero_digitado)
  return numero_digitado.to_i
end

def verifica_se_acertou(numero_digitado)
  numero_secreto = 1
  acertou = numero_secreto == numero_digitado.to_i
  if acertou
    puts "Acertou"
  else
    puts "Errou "
  end
  return acertou
end

for tentar in 1..5
  tentar = tentativas(tentar)
end

Olá Daniel, Está correto sim!

Em programação colocar a mão na massa e não só seguir os passos já feitos faz muita diferença no aprendizado, parabéns pela iniciativa!

Só deixo a dica de que nesse caso você não precisa dos returns e nem de salvar o retorno de tentativas no for:

def tentativas(tentar)
  puts "\n" + "Essa é a tentativa " + tentar.to_s + " de " + "5"
  print "Digite um número ~> "
  numero_digitado = gets
  puts "Daniel, " + "você escolheu o número " + numero_digitado.chomp + ", será que está certo?"

  verifica_se_acertou(numero_digitado)
end

def verifica_se_acertou(numero_digitado)
  numero_secreto = 1
  acertou = numero_secreto == numero_digitado.to_i

  if acertou
    puts "Acertou"
  else
    puts "Errou"
  end
end

for tentar in 1..5
  tentativas(tentar)
end

Espero ter ajudado, qualquer dúvida é só falar!

Shoooow. Muito obrigado.

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