Advertisement
Guest User

Untitled

a guest
Feb 1st, 2015
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.94 KB | None | 0 0
  1. #!/usr/bin/ruby
  2. require "rspec"
  3. class DiceGame
  4. attr_accessor :values
  5. attr_accessor :rules
  6. def initialize
  7. @rules = [
  8. [3, 1, 1000], [3, 5, 600], [3, 4, 400],
  9. [3, 3, 200], [3, 2, 200], [1, 1, 100],
  10. [1, 5, 50]
  11. ]
  12. end
  13.  
  14. def roll(count)
  15. @values = count.times.map { Random.rand(6) + 1}
  16. end
  17.  
  18. def calc
  19. results = get_points
  20. sum = 0
  21. @rules.each do |rule|
  22. count = results[rule[1]]/rule[0]
  23. sum += count * rule[2]
  24. results[rule[1]] -= count*rule[0]
  25. end
  26. sum
  27. end
  28.  
  29. def get_points
  30. results = Hash.new
  31. results.default = 0
  32. @values.each do |value|
  33. results[value] += 1
  34. end
  35. results
  36. end
  37. end
  38.  
  39. RSpec.describe DiceGame do
  40. describe "#calc" do
  41. it "Correct_for [1, 1, 1, 1, 1, 1]" do
  42. game = DiceGame.new
  43. game.values = [1, 1, 1, 1, 1, 1]
  44. expect(game.calc).to eq(2000)
  45. end
  46. it "Correct_for [1, 1, 1, 1, 1, 3]" do
  47. game = DiceGame.new
  48. game.values = [1, 1, 1, 1, 1, 3]
  49. expect(game.calc).to eq(1200)
  50. end
  51. end
  52. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement