Guest User

Untitled

a guest
Jun 20th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. class Player
  2. def choose
  3. [:Rock, :Paper, :Scissors][rand(3)]
  4. end
  5. end
  6.  
  7. class Game
  8. def initialize(player1 = Player.new, player2 = Player.new)
  9. @players = [player1, player2]
  10. end
  11.  
  12. def run(num_rounds)
  13. @results = []
  14. num_rounds.times do
  15. choices = @players.map do |p| p.choose end
  16. if choices[0] == choices[1]
  17. @results << 0
  18. else
  19. case choices
  20. when [:Paper, :Rock], [:Rock, :Scissors], [:Scissors, :Paper]
  21. @results << 1
  22. else
  23. @results << 2
  24. end
  25. end
  26. end
  27. end
  28.  
  29. def results
  30. wins, losses, draws = [], [], []
  31. @players.each_index do |i|
  32. wins[i] = @results.grep(1 + i).size
  33. draws[i] = @results.grep(0).size
  34. losses[i] = @results.grep(2 - i).size
  35. puts "Player #{i + 1}: won #{wins[i]}, lost #{losses[i]}, draw #{draws[i]}"
  36. end
  37. winner = wins[0] > wins[1] ? 1 : 2
  38. puts "Player #{winner} is the overall winner"
  39. end
  40. end
  41.  
  42. game = Game.new
  43. game.run(100)
  44. game.results
Add Comment
Please, Sign In to add comment