Guest User

Untitled

a guest
May 24th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. class Secret
  2.  
  3. def initialize
  4. @secret = Kernel.rand(100).to_i + 1
  5. end
  6.  
  7. def correct?
  8. @entered.to_i == @secret
  9. end
  10.  
  11. def integer?
  12. @entered.match(/^\d+$/)
  13. end
  14.  
  15. def entered=(value)
  16. @entered = value
  17. end
  18.  
  19. def to_s
  20. @secret
  21. end
  22.  
  23. def hint
  24. @entered.to_i > @secret ? "Je gokte te hoog." : "Je gokte te laag."
  25. end
  26.  
  27. end
  28.  
  29. class GuessProcedure
  30.  
  31. @@times_played = 0
  32.  
  33. def self.start
  34. @@times_played += 1
  35. if @@times_played == 1
  36. puts "Welkom bij de getallenrader!"
  37. else
  38. puts "Dit doe je nu voor de #{@@times_played}e keer!"
  39. end
  40. procedure
  41. end
  42.  
  43. def self.procedure
  44. print "Raad een getal tussen de 0 en 100, of typ iets anders in om te stoppen: "
  45. procedure = self.new(Secret.new)
  46. procedure.display(procedure.guess)
  47. try_again? ? start : puts("Tot ziens!")
  48. end
  49.  
  50. def self.try_again?
  51. print "Nog een keer spelen? [yN]: "
  52. gets.strip.downcase == 'y'
  53. end
  54.  
  55. def initialize(secret)
  56. @secret = secret
  57. @tries = 0
  58. end
  59.  
  60. def guess
  61. @tries += 1
  62. @secret.entered = gets
  63. return :failed unless @secret.integer?
  64. return :correct if @secret.correct?
  65. puts @secret.hint
  66. print "Probeer opnieuw: "
  67. guess
  68. end
  69.  
  70. def display(message)
  71. puts send(message)
  72. end
  73.  
  74. def correct
  75. "Gefeliciteerd! Je had het goed! En dat in maar #{@tries} pogingen!"
  76. end
  77.  
  78. def failed
  79. "Je hebt het opgegeven. Het antwoord was #{@secret.to_s}."
  80. end
  81.  
  82. end
  83.  
  84. GuessProcedure.start
Add Comment
Please, Sign In to add comment