Advertisement
Guest User

Untitled

a guest
Dec 22nd, 2014
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.69 KB | None | 0 0
  1. protocol RandomNumberGenerator {
  2. func random() -> Double
  3. }
  4.  
  5. class LinearCongruentialGenerator : RandomNumberGenerator {
  6. var lastRandom = 42.0
  7. let m = 139969.0
  8. let a = 3877.0
  9. let c = 29573.0
  10. func random() -> Double {
  11. lastRandom = ((lastRandom * a + c) % m)
  12. return lastRandom / m
  13. }
  14. }
  15.  
  16. class Dice {
  17. let sides: Int
  18. let generator: RandomNumberGenerator
  19. init(sides: Int, generator: RandomNumberGenerator) {
  20. self.sides = sides
  21. self.generator = generator
  22. }
  23. func roll() -> Int {
  24. return Int(generator.random() * Double(sides
  25. )) + 1
  26. }
  27. }
  28.  
  29. let dice = Dice(sides: 6, generator: LinearCongruentialGenerator())
  30. dice.roll()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement