Guest User

Untitled

a guest
Oct 19th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. class WrongNumberOfPlayersError < StandardError ; end
  2. class NoSuchStrategyError < StandardError ; end
  3.  
  4. def rps_game_winner(game)
  5. raise WrongNumberOfPlayersError unless game.length == 2
  6. valid = /[rps]/
  7. game1 = game[0][1].downcase
  8. game2 = game[1][1].downcase
  9. raise NoSuchStrategyError unless (game1 =~ valid) && (game2 =~ valid)
  10. get_winner(game1, game2) ? game[0] : game[1]
  11. end
  12.  
  13. def get_winner(game1, game2)
  14. if (game1 == game2)
  15. return true
  16. end
  17. if (game1 == 'p' && game2 == 'r') || (game1 == 'r' && game2 == 's') || (game1 == 's' && game2 == 'p')
  18. return true
  19. else
  20. return false
  21. end
  22. end
  23.  
  24. def rps_tournament_winner(tournament)
  25. players = []
  26. return tournament[0] if tournament.size == 1
  27. new_array = []
  28. tournament.flatten.each_slice(2) do |l1|
  29. new_array << l1
  30. end
  31. new_array.each_slice(2) do |l1, l2|
  32. current_game = []
  33. current_game << l1
  34. current_game << l2
  35. players << rps_game_winner(current_game)
  36. end
  37.  
  38. rps_tournament_winner(players)
  39. end
Add Comment
Please, Sign In to add comment