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

Ruby II

Não estou conseguindo utilizar a "escolha" para mudar de painel, preciso de ajuda de vocês para que eu possa dar continuidade no treinamento e no código.

main.rb

require_relative 'forca'

    comecar_jogo_mecanismo

ui.rb

 def boas_vindas
    puts "\n\n\n 
          ========================================================================================
          *                           SEJA BEM-VINDO AO JOGO DA FORCA...                         *               
          *                                                                                      *
          *      |__           _|_  |__  o  __   __   __        __  __   __   __|                *
          *      |__) (__|      |_, |  ) | (__( (__| (__)     __)  (__( (__( (__|                *
          *              |                       __/                                             * 
          *                                                                                      *
          *                                  +---+                                               *
          *                                  |   |                                               *
          *                                  |   O                                               *
          *                                  |  .|.                                              *
          *                                  |  * *                                              *
          *                                  =========                                           *                   
          *                                                                                      *   
             ========================================================================================\n\n\n"
    puts "\n\n\n 
          =========================================================================================
          *                           ESCOLHA UMA DAS OPÇÕES                                      *               
          *             (1) - Como Jogar?                                                         *
          *             (2) - Jogar                                                               *
          *             (0) - Sair                                                                *                
          *                                                                                       *   
          =========================================================================================\n\n\n"
          @escolha = gets
end

def como_jogar
    puts "É simples, você receberá dicas para as palavras. Basta apenas saber a palavra ou tentar o chute pelas letras de nosso alfabeto para descobri-las."
    puts "Caso a letra esteja certa você ganhará 10 pontos por letra!\n" + "Caso a letra esteja errada, você perderá 10 pontos por letra!"
    puts "\n\n\n 
          =========================================================================================
          *                           ESCOLHA UMA DAS OPÇÕES                                      *               
          *             (1) - Voltar                                                              *  
          =========================================================================================\n\n\n"
          @escolha = gets
end

def jogar_player
    puts "Digite o seu nome: "
         @nome_player = gets.strip
end

def jogar 
    puts "================================================================================================================================="
    puts "* Jogador: #{@nome_player} Pontos Ganho: #{@pontos_ganho} Pontos Perdido: #{@pontos_perdido} Total de Pontos: #{@pontos_total}  *"                              
    puts "=================================================================================================================================\n\n\n"
end 

def sair
    puts "Você tem certeza que deseja sair? (S/N)"
         @escolha = gets
end

## forca.rb
def opcao_invalida
    puts "Você digitou a opção errada. Tente Novamente"
end

forca.rb

require_relative 'ui'

def escolha_boas_vindas_mecanismo
    if @escolha == 1
        system "cls"
        como_jogar
       elsif @escolha == 2
              system "cls"
              jogar_player
              system "cls"
              jogar 
        elsif @escolha == 0
              system "cls"
              sair
            else
            system "cls"
            opcao_invalida
            sleep 1.0     
            boas_vindas
    end            
end

def comecar_jogo_mecanismo
    boas_vindas
end
3 respostas
solução!

As escolhas não funcionam porque sua função "boas_vindas" não chama a função "escolha_boas_vindas_mecanismo" no final. Ela lê a variável e termina a execução. Além disso, será necessário passar a variável @escolha para o método "escolha_boas_vindas_mecanismo" para que ele funcione.

Sugestão: 1) No final da função "boas_vindas" adicione:

@escolha = gets.strip
escolha_boas_vindas_mecanismo @escolha

2) altere a definição do seu método para que ele aceite uma variável

antes:

def escolha_boas_vindas_mecanismo

depois:

def escolha_boas_vindas_mecanismo escolha

Com isso sua função de escolha funcionará será ativada, passando os valores como se deve.

Dica final: suas escolhas ainda não funcionarão pois você está comparando strings (que você lê do usuário) com números (1, 2 ou 0). Será necessário converter os valores ou comparar string com string.

Apenas uma correção no meu comentário anterior, pois faltou uma @ no nome da variável.

A definição do seu método deve ficar:

def escolha_boas_vindas_mecanismo @escolha

Obrigado @Leonardo Luis, o seu segundo comentário está errado, porque o ruby não passa a variavel com o "@" então teria que deixar como você disse no primeiro comentario.. Somente escolha e não @escolha como parametro.