2
respostas

Erro de argumento

Quando tento incluir a seleção de dificuldade é apresentado o seguinte erro "selecione o nivel de dificuldade 1 C:/Users/gusta/Desktop/Stuffs/usefull stuffs/AulaRuby.rb:11:in escolhe_numero': wrong number of arguments (0 for 1) (ArgumentError) from C:/Users/gusta/Desktop/Stuffs/usefull stuffs/AulaRuby.rb:67:in' "

Meu código é

def escolhe_numero (nivel)

        case nivel 
            when 1 
                maximo = 30 
            when 2 
                maximo = 60 
            when 3 
                maximo = 100 
            when 4 
                maximo = 150 
            else 
                maximo =200 
        end
numero_sorteado = rand(maximo)
puts "numero escolhido, entre com o seu palpite   "
#return pode ser utilizado para retornar porém em ruby não é necessario
numero_sorteado
end

def pede_nivel 
     puts "selecione o nivel de dificuldade"
     gets.to_i
end

nivel=pede_nivel
2 respostas

Opa, aí não está o código completo, ou está? Ele fala que o erro está na linha 67 e não tem 67 linhas de código nesse código :).

Realmente não está o codigo completo pois quando removo a variavel nivel ele roda normalmente inclusive com a mesma linha 67 que apresenta erro quando adiciono a variavel, porém de qualquer forma segue o codigo completo.

def da_boas_vindas 
puts "Inicio do jogo"
puts "qual é o seu nome?"
nome = gets.strip
puts "iniciando...  #{nome} "
puts "\n"

puts "escolhendo o numero"
puts "\n"
end
def escolhe_numero (nivel)

        case nivel 
            when 1 
                maximo = 30 
            when 2 
                maximo = 60 
            when 3 
                maximo = 100 
            when 4 
                maximo = 150 
            else 
                maximo =200 
        end
numero_sorteado = rand(maximo)
puts "numero escolhido, entre com o seu palpite   "
#return pode ser utilizado para retornar porém em ruby não é necessario
numero_sorteado
end
def pede_numero chutes, tentativa, limite_de_tentativas
puts "tentativa #{tentativa} de #{limite_de_tentativas}"
chute = gets.strip
puts "chutes anteriores " + chutes.to_s 
puts "validando o seu chute de numero:" + chute
chute.to_i
end

def verifica_acerto numero_secreto, chute
acertou = chute == numero_secreto
if acertou

        puts "Acertou!"
        return true
        end

        maior=numero_secreto> chute
        if maior
            puts "numero secreto é maior"

        else 
            puts "numero secreto é menor"

        end

    false

end

def pede_nivel 
     puts "selecione o nivel de dificuldade"
     gets.to_i
end

da_boas_vindas
 nivel= pede_nivel
pontos_atuais=1000
numero_secreto = escolhe_numero


 chutes=[]
limite_de_tentativas = 5
 for tentativa in 1..limite_de_tentativas
   chute=pede_numero chutes, tentativa, limite_de_tentativas
 chutes<<chute
  pontos_perdidos= (chute - numero_secreto)  /2
  pontos_atuais-=pontos_perdidos
  if verifica_acerto numero_secreto,chute
  break
  end



end
 puts "o numero secreto é " + numero_secreto.to_s
 puts "voce terminou com #{pontos_atuais} pontos"