Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'yaml'
- def criar
- File.new('config.yml','w')
- $dados = []
- $dados[0] = []
- $dados[1] = []
- $dados[2] = []
- File.open('config.yml','w') { |x| x << $dados.to_yaml }
- end
- File.exist?('config.yml') ? ():(criar)
- $dados = YAML::load(File.open("config.yml"))
- module Start
- @title = puts '
- ____ _ ___ _
- / __ \ (_) | \ | |
- / / \ \ _ _ _ _____ | () )_ _| |__ _ __
- ( ( ) ) | | | |\_ / | /| | | | / \ \ / /
- \ \_\/ /| \_/ | | / /_ | \ \ \_/ | () ) \/ /
- \___\/ \___/|_|/____\ |___\__\___/ \ __/ \ /
- \ / /
- /_/
- #################################
- # - Menu - #
- # #
- # [C] - Cadastrar novo usuário #
- # [L] - Login #
- # [D] - Limpar dados #
- # [S] - Sair #
- # #
- ################################# '
- def titulo
- return @title
- end
- def inicio
- print 'Digite a opção desejada:'
- $opcao = gets.chomp.capitalize
- end
- def salvar_users
- $dados[1] = $users
- $dados[2] = $pass
- File.open('config.yml','w') { |x| x << $dados.to_yaml }
- end
- def limpar
- $dados[0] = []
- $dados[1] = []
- $dados[2] = []
- File.open('config.yml','w') { |x| x << $dados.to_yaml }
- puts 'Dados excluídos'
- Kernel::exit
- end
- end
- class Usuario
- $niveis = $dados[0]
- $users = $dados[1]
- $pass = $dados[2]
- def cadastrar
- puts '--- Cadastrar ---'
- print 'Usuário: '
- user = gets.chomp
- $users << user
- print 'Senha: '
- pwd = gets.chomp
- $pass << pwd
- puts "O usuário #{user} foi criado com sucesso."
- $niveis << 1
- salvar_users
- inicio
- end
- def login
- puts '--- Login ---'
- print 'Login: '
- @usuario = gets.chomp
- @id = $users.index(@usuario)
- if @id.nil?
- puts 'Usuario não cadastrado'
- Kernel::exit
- end
- print 'Senha: '
- @senha = gets.chomp
- $cont = $niveis[@id]
- if @senha == $pass[@id]
- puts 'Login efetuado com sucesso'
- else
- puts 'Senha Errada'
- login
- end
- end
- def salvar
- $niveis[@id] = $cont
- $dados[0] = $niveis
- $dados[1] = $users
- $dados[2] = $pass
- File.open('config.yml','w') { |x| x << $dados.to_yaml }
- $cont = nil
- end
- end
- class Questao < Usuario
- def initialize (perg, alt, resp_certa, n)
- @pergunta = perg
- @alternativas = alt
- @resp_certa = resp_certa
- @nivel = n
- end
- def perguntar
- puts ''
- puts "***** Nível #{@nivel.to_s} *****".center(50)
- puts ''
- puts @pergunta
- i = 1
- @alternativas.each { |p|
- puts i.to_s + ' - ' + p.to_s
- i += 1
- }
- print 'Digite a opção correta: '
- resp = gets.chomp
- resp.to_i == @resp_certa.to_i ? (puts 'Resposta Certa !'; $cont += 1):(puts 'Resposta Errada !'; $error = true )
- end
- end
- include Start
- q01 = Questao.new('A linguagem de programação Ruby foi criada por:', ['Larry Wall', 'Guido van Rossum', 'Yukihiro Matsumoto (Matz)', 'Bjarne Stroustrup'], 3, 1)
- q02 = Questao.new('1 + 1 = ?', ['2', '3', '11', '1'], 1, 2)
- q03 = Questao.new('Vamus ?', ['Sim', 'Não', 'Talvez', 'Jamais'], 3, 3)
- q04 = Questao.new('Vamus ?', ['Sim', 'Não', 'Talvez', 'Jamais'], 4, 4)
- user = Usuario::new
- titulo
- inicio
- until $opcao == 'S'
- case ($opcao)
- when 'C' : user.cadastrar
- when 'L' : user.login;
- when 'D' : limpar
- else puts 'Opção Inválida'
- inicio
- end
- if $cont == 1 then q01.perguntar end
- if $cont == 2 then q02.perguntar end
- if $cont == 3 then q03.perguntar end
- if $cont == 4 then q04.perguntar end
- if $error == true
- user.salvar
- inicio
- end
- end
Add Comment
Please, Sign In to add comment