Advertisement
Guest User

Untitled

a guest
May 1st, 2016
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. require 'colorize'
  2.  
  3. class Player
  4. def initialize(name)
  5. @name = name
  6. @starting_life = 3
  7. @starting_points = 0
  8. end
  9.  
  10. def lose_life
  11. @starting_life -= 1
  12. end
  13.  
  14. def gain_points
  15. @starting_points += 1
  16. end
  17.  
  18. def random_number
  19. @first_number = rand(1..20)
  20. @second_number = rand(1..20)
  21. end
  22.  
  23. def question
  24. puts "#{@name} what does #{@first_number} + #{@second_number} equals to?"
  25. end
  26.  
  27. def player_answer
  28. @answer = gets.chomp.to_i
  29. end
  30.  
  31. def match?
  32. @answer == @first_number + @second_number
  33. end
  34.  
  35. def is_right
  36. if match? == true
  37. puts "Great job!".colorize(:green)
  38. gain_points
  39. else
  40. puts "You lost a point!".colorize(:red)
  41. lose_life
  42. end
  43. end
  44.  
  45. def life
  46. @starting_life
  47. end
  48.  
  49. def points
  50. @starting_points
  51. end
  52.  
  53. def name
  54. @name
  55. end
  56.  
  57. end
  58.  
  59.  
  60. def player_creation
  61.  
  62. puts "Player 1, please enter your name."
  63. name = gets.chomp
  64. @player1 = Player.new(name)
  65.  
  66. puts "Player 2, please enter your name."
  67. name = gets.chomp
  68. @player2 = Player.new(name)
  69. end
  70.  
  71. def game
  72.  
  73. player_creation
  74. loop do
  75. @player1.random_number
  76. @player1.question
  77. @player1.player_answer
  78. @player1.match?
  79. @player1.is_right
  80. break if @player1.life == 0 || @player1.points == 3
  81. @player2.random_number
  82. @player2.question
  83. @player2.player_answer
  84. @player2.match?
  85. @player2.is_right
  86. break if @player2.life == 0 || @player2.points == 3
  87. puts "#{@player1.name} currently has #{@player1.points} points".colorize(:magenta)
  88. puts "#{@player1.name} currently has #{@player1.life} live(s)".colorize(:magenta)
  89. puts "#{@player2.name} currently has #{@player2.points} points".colorize(:cyan)
  90. puts "#{@player2.name} currently has #{@player2.life} live(s)".colorize(:cyan)
  91. end
  92. end
  93.  
  94. game
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement