Oi pessoal, Eu fiz o código do jogo da forca seguindo a aula e não consigo entender uma coisa. Tem um momento que a gente atribui a uma variável chamada letra_procurada uma outra variável, porém o código é escrito como se essa variável fosse um array, dessa maneira aqui: letra_procurada = chute [0]
Chute não é um array, não entendi porque colocar chute na posição zero. Ele tem posição zero mesmo não sendo um array?
Muito obrigado!
def da_boas_vindas
puts "Bem vindo ao jogo da forca"
puts "Qual é o seu nome?"
nome = gets.chomp
puts "\n\n\n\n"
puts "Começaremos o jogo para você, #{nome}"
nome
end
def escolhe_palavra_secreta
puts "Escolhendo uma palavra secreta"
palavra_secreta = "programador"
puts "Palavra secreta com #{palavra_secreta.size} letras...boa sorte!"
return palavra_secreta
end
def nao_quer_jogar?
puts "Deseja jogar novamente? (S/N)"
quer_jogar = gets.strip.upcase
nao_quero_jogar = quer_jogar == "N"
end
def pede_um_chute(erros, chutes)
puts "\n\n\n\n"
puts "Erros até agora: #{erros}"
puts "Chutes até agora: #{chutes}"
puts "Entre com uma letra ou com uma palavra"
chute = gets.chomp
puts "Será que acertou? Você chutou #{chute}"
chute
end
def joga(nome)
palavra_secreta = escolhe_palavra_secreta
erros = 0
chutes = []
pontos_ate_agora = 0
while erros < 5
chute = pede_um_chute(erros, chutes)
chutes << chute
chutou_uma_letra = chute.size == 1
if chutou_uma_letra
# SE CHUTE NÃO É UM ARRAY, O QUE SIGNIFICA CHUTE NO INDEX 0?
letra_procurada = chute [0]
total_encontrado = palavra_secreta.count letra_procurada
if total_encontrado == 0
puts "Letra não encontrada."
erros += 1
else
puts "Letra encontrada #{total_encontrado} vezes."
end
else
acertou = chute == palavra_secreta
if acertou
puts "Parabéns, você acertou!"
pontos_ate_agora += 100
break
else
puts "Que pena...errou"
pontos_ate_agora -= 30
erros += 1
end
end
end
puts "Você ganhou #{pontos_ate_agora} pontos."
end
nome = da_boas_vindas
loop do
jogo = joga(nome)
if nao_quer_jogar?
break
end