Guest User

Untitled

a guest
Jul 22nd, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.73 KB | None | 0 0
  1. require 'yaml'
  2.  
  3. def criar
  4. File.new('config.yml','w')
  5. $dados = []
  6. $dados[0] = []
  7. $dados[1] = []
  8. $dados[2] = []
  9. File.open('config.yml','w') { |x| x << $dados.to_yaml }
  10. end
  11.  
  12. File.exist?('config.yml') ? ():(criar)
  13.  
  14. $dados = YAML::load(File.open("config.yml"))
  15.  
  16. module Start
  17. @title = puts '
  18. ____ _ ___ _
  19. / __ \ (_) | \ | |
  20. / / \ \ _ _ _ _____ | () )_ _| |__ _ __
  21. ( ( ) ) | | | |\_ / | /| | | | / \ \ / /
  22. \ \_\/ /| \_/ | | / /_ | \ \ \_/ | () ) \/ /
  23. \___\/ \___/|_|/____\ |___\__\___/ \ __/ \ /
  24. \ / /
  25. /_/
  26.  
  27.  
  28. #################################
  29. # - Menu - #
  30. # #
  31. # [C] - Cadastrar novo usuário #
  32. # [L] - Login #
  33. # [D] - Limpar dados #
  34. # [S] - Sair #
  35. # #
  36. ################################# '
  37.  
  38. def titulo
  39. return @title
  40. end
  41.  
  42. def inicio
  43. print 'Digite a opção desejada:'
  44. $opcao = gets.chomp.capitalize
  45. end
  46.  
  47. def salvar_users
  48. $dados[1] = $users
  49. $dados[2] = $pass
  50. File.open('config.yml','w') { |x| x << $dados.to_yaml }
  51. end
  52.  
  53. def limpar
  54. $dados[0] = []
  55. $dados[1] = []
  56. $dados[2] = []
  57. File.open('config.yml','w') { |x| x << $dados.to_yaml }
  58. puts 'Dados excluídos'
  59. Kernel::exit
  60. end
  61.  
  62. end
  63.  
  64.  
  65. class Usuario
  66. $niveis = $dados[0]
  67. $users = $dados[1]
  68. $pass = $dados[2]
  69. def cadastrar
  70. puts '--- Cadastrar ---'
  71. print 'Usuário: '
  72. user = gets.chomp
  73. $users << user
  74. print 'Senha: '
  75. pwd = gets.chomp
  76. $pass << pwd
  77. puts "O usuário #{user} foi criado com sucesso."
  78. $niveis << 1
  79. salvar_users
  80. inicio
  81. end
  82.  
  83. def login
  84. puts '--- Login ---'
  85. print 'Login: '
  86. @usuario = gets.chomp
  87. @id = $users.index(@usuario)
  88. if @id.nil?
  89. puts 'Usuario não cadastrado'
  90. Kernel::exit
  91. end
  92. print 'Senha: '
  93. @senha = gets.chomp
  94. $cont = $niveis[@id]
  95. if @senha == $pass[@id]
  96. puts 'Login efetuado com sucesso'
  97. else
  98. puts 'Senha Errada'
  99. login
  100. end
  101. end
  102.  
  103. def salvar
  104. $niveis[@id] = $cont
  105. $dados[0] = $niveis
  106. $dados[1] = $users
  107. $dados[2] = $pass
  108. File.open('config.yml','w') { |x| x << $dados.to_yaml }
  109. $cont = nil
  110. end
  111.  
  112. end
  113.  
  114.  
  115. class Questao < Usuario
  116. def initialize (perg, alt, resp_certa, n)
  117. @pergunta = perg
  118. @alternativas = alt
  119. @resp_certa = resp_certa
  120. @nivel = n
  121. end
  122.  
  123. def perguntar
  124. puts ''
  125. puts "***** Nível #{@nivel.to_s} *****".center(50)
  126. puts ''
  127. puts @pergunta
  128. i = 1
  129. @alternativas.each { |p|
  130. puts i.to_s + ' - ' + p.to_s
  131. i += 1
  132. }
  133. print 'Digite a opção correta: '
  134. resp = gets.chomp
  135. resp.to_i == @resp_certa.to_i ? (puts 'Resposta Certa !'; $cont += 1):(puts 'Resposta Errada !'; $error = true )
  136. end
  137.  
  138. end
  139.  
  140. include Start
  141.  
  142. q01 = Questao.new('A linguagem de programação Ruby foi criada por:', ['Larry Wall', 'Guido van Rossum', 'Yukihiro Matsumoto (Matz)', 'Bjarne Stroustrup'], 3, 1)
  143. q02 = Questao.new('1 + 1 = ?', ['2', '3', '11', '1'], 1, 2)
  144. q03 = Questao.new('Vamus ?', ['Sim', 'Não', 'Talvez', 'Jamais'], 3, 3)
  145. q04 = Questao.new('Vamus ?', ['Sim', 'Não', 'Talvez', 'Jamais'], 4, 4)
  146.  
  147. user = Usuario::new
  148.  
  149. titulo
  150. inicio
  151.  
  152. until $opcao == 'S'
  153.  
  154. case ($opcao)
  155. when 'C' : user.cadastrar
  156. when 'L' : user.login;
  157. when 'D' : limpar
  158. else puts 'Opção Inválida'
  159. inicio
  160.  
  161. end
  162.  
  163. if $cont == 1 then q01.perguntar end
  164. if $cont == 2 then q02.perguntar end
  165. if $cont == 3 then q03.perguntar end
  166. if $cont == 4 then q04.perguntar end
  167.  
  168. if $error == true
  169. user.salvar
  170. inicio
  171. end
  172. end
Add Comment
Please, Sign In to add comment