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

Onde eu posso obter o código final do projeto - melhoria da interface do usuário?

Olá, gostaria de saber onde eu posso obter o código final do projeto - melhoria da interface do usuário?

4 respostas

Oi Emerson, tudo bem?

No momento não temos o código da maioria dos cursos. Provavelmente não temos desse também.

Mas já estamos trabalhando para melhorar nesse ponto. Em breve deveremos ter boas novidades.

Se algum aluno que fez o curso tiver separado o código e puder disponibilizar, será de grande ajuda.

Abraço!

Olá, Emerson! Sei que faz tempo que postou isso, mas se ainda deseja, aqui está meu código final do projeto (há algumas diferenças que envolvem minhas preferências):

def welcome 
    puts
    puts "        P  /_\  P                              "
    puts "       /_\_|_|_/_\                             "
    puts "   n_n | ||. .|| | n_n         Bem vindo ao    "
    puts "   |_|_|nnnn nnnn|_|_|     Jogo de Adivinhação!"
    puts "  |' '  |  |_|  |'  ' |                        "
    puts "  |_____| ' _ ' |_____|                        " 
    puts "        \__|_|__/                              "
    puts
    puts "Qual é o seu nome?"
    name = gets.strip
    puts "\n\n\n\n\n"
    puts "Começaremos o jogo para você, #{name}"
    name
end
def difficulty_level
    puts "Qual o nível de dificuldade que deseja?"
    puts "(1) Muito fácil (2) Fácil (3) Normal (4) Difícil (5) Impossível"
    puts "Escolha:"
    difficulty = gets.to_i
end
def get_secret_number(difficulty)
    case difficulty
        when 1
            max = 30
        when 2
            max = 60
        when 3
            max = 100
        when 4
            max = 150
        else
            max = 200
    end
    puts "Escolhendo um número secreto entre 1 e #{max}..."
    secret_number = rand(max) + 1
    puts "Escolhi! Que tal tentar adivinhar nosso número?"
    secret_number
end
def choose_number(numbers_guess, try, try_limit)
    puts "\n\n\n\n\n"
    puts "Tentativa #{try} de #{try_limit}."
    puts "Chutes até agora: #{numbers_guess}"
    puts "Entre com o número!"
    guess = gets.strip
    puts "Será que acertou? Você chutou #{guess}."
    guess.to_i
end
def verify_try(secret_number, guess)
    win = secret_number == guess
    more = secret_number > guess
    if win
         win_message
         return true
     end
        if more
            puts "O número secreto é maior!"
        else
            puts "O número secreto é menor!"
        end
        false
end
def win_message
    puts
    puts "             OOOOOOOOOOO               "
    puts "         OOOOOOOOOOOOOOOOOOO           "
    puts "      OOOOOO  OOOOOOOOO  OOOOOO        "
    puts "    OOOOOO      OOOOO      OOOOOO      "
    puts "  OOOOOOOO  #   OOOOO  #   OOOOOOOO    "
    puts " OOOOOOOOOO    OOOOOOO    OOOOOOOOOO   "
    puts "OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO  "
    puts "OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO  "
    puts "OOOO  OOOOOOOOOOOOOOOOOOOOOOOOO  OOOO  "
    puts " OOOO  OOOOOOOOOOOOOOOOOOOOOOO  OOOO   "
    puts "  OOOO   OOOOOOOOOOOOOOOOOOOO  OOOO    "
    puts "    OOOOO   OOOOOOOOOOOOOOO   OOOO     "
    puts "      OOOOOO   OOOOOOOOO   OOOOOO      "
    puts "         OOOOOO         OOOOOO         "
    puts "             OOOOOOOOOOOO              "
    puts
    puts "               Você acertou!           "
    puts
end
def play(name, difficulty)
    secret_number = get_secret_number difficulty
    points_now = 1000
    try_limit = 5
    numbers_guess = []
    for try in 1..try_limit
        guess = choose_number numbers_guess, try, try_limit
        numbers_guess << guess
        if name == "Yan"
            win_message
            break
        end
        points_lost = (guess - secret_number).abs / 2.0
        points_now -= points_lost
        break if verify_try secret_number, guess
    end
        puts "Você ganhou #{points_now} pontos."
end
def keep_playing?
    puts "Deseja jogar novamente? (S/N)"
    to_keep_playing = gets.strip
    to_keep_playing.upcase == "S"
end
name = welcome
difficulty = difficulty_level
loop do
    play name, difficulty
    break if ! keep_playing?
end

Talvez ainda consiga o código exatamente igual ao do instrutor, fique no aguardo!

solução!

Segue o código do instrutor:

def da_boas_vindas
  puts
  puts "        P  /_\  P                              "
  puts "       /_\_|_|_/_\                             "
  puts "   n_n | ||. .|| | n_n         Bem vindo ao    "
  puts "   |_|_|nnnn nnnn|_|_|     Jogo de Adivinhação!"
  puts "  |' '  |  |_|  |'  ' |                        "
  puts "  |_____| ' _ ' |_____|                        " 
  puts "        \__|_|__/                              "
  puts
  puts "Qual é o seu nome?"
  nome = gets.strip
  puts "\n\n\n\n\n\n"
  puts "Começaremos o jogo para você, #{nome}"
  nome
end

def pede_dificuldade
  puts "Qual o nível de dificuldade?"
  puts "(1) Muito fácil (2) Fácil (3) Normal (4) Difícil (5) Impossível"
  puts "Escolha: "
  dificuldade = gets.to_i
end

def sorteia_numero_secreto(dificuldade)
    case dificuldade
    when 1
        maximo = 30
    when 2
        maximo = 60
    when 3
        maximo = 100
    when 4
        maximo = 150
    else
        maximo = 200
    end
    puts "Escolhendo um número secreto entre 1 e #{maximo}..."
    sorteado = rand(maximo) + 1
    puts "Escolhido... que tal adivinhar hoje nosso número secreto?"
    sorteado
end

def pede_um_numero(chutes, tentativa, limite_de_tentativas)
    puts "\n\n\n\n"
    puts "Tentativa #{tentativa} de #{limite_de_tentativas}"
    puts "Chutes até agora: #{chutes}"
    puts "Entre com o número"
    chute = gets.strip
    puts "Será que acertou? Você chutou #{chute}"
    chute.to_i
end

def ganhou
  puts
  puts "             OOOOOOOOOOO               "
  puts "         OOOOOOOOOOOOOOOOOOO           "
  puts "      OOOOOO  OOOOOOOOO  OOOOOO        "
  puts "    OOOOOO      OOOOO      OOOOOO      "
  puts "  OOOOOOOO  #   OOOOO  #   OOOOOOOO    "
  puts " OOOOOOOOOO    OOOOOOO    OOOOOOOOOO   "
  puts "OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO  "
  puts "OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO  "
  puts "OOOO  OOOOOOOOOOOOOOOOOOOOOOOOO  OOOO  "
  puts " OOOO  OOOOOOOOOOOOOOOOOOOOOOO  OOOO   "
  puts "  OOOO   OOOOOOOOOOOOOOOOOOOO  OOOO    "
  puts "    OOOOO   OOOOOOOOOOOOOOO   OOOO     "
  puts "      OOOOOO   OOOOOOOOO   OOOOOO      "
  puts "         OOOOOO         OOOOOO         "
  puts "             OOOOOOOOOOOO              "
  puts
  puts "               Acertou!                "
  puts
end

def verifica_se_acertou(numero_secreto, chute)
    acertou = numero_secreto == chute
    if acertou
        ganhou
        return true
    end
    maior = numero_secreto > chute
    if maior
        puts "O número secreto é maior!"
    else
        puts "O número secreto é menor!"
    end
    false
end

def joga(nome, dificuldade)
    numero_secreto = sorteia_numero_secreto dificuldade

    limite_de_tentativas = 5
    chutes = []
    pontos_ate_agora = 1000

    for tentativa in 1..limite_de_tentativas
        chute = pede_um_numero chutes, tentativa, limite_de_tentativas
        chutes << chute

        if nome == "Guilherme"
            ganhou
            break
        end

        pontos_a_perder = (chute - numero_secreto).abs / 2.0
        pontos_ate_agora = pontos_ate_agora - pontos_a_perder
        if verifica_se_acertou numero_secreto, chute
            break
        end
    end

    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
dificuldade = pede_dificuldade

loop do
    joga nome, dificuldade
    break if nao_quer_jogar?
end

Obrigado Yan!