Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.30 KB | None | 0 0
  1. use "random"
  2. use "itertools"
  3. use "collections"
  4.  
  5. primitive Bet
  6. primitive Draw
  7.  
  8. class GameDefinition
  9. let handedness: USize = 15
  10. let round_types: Array[(Bet | Draw)] = [Bet; Draw; Bet; Draw; Bet]
  11. let small_blind: USize = 50
  12. let bogo: Array[(U32, U32, U32, U32)] = [(0, 0, 0, 0); (1, 2, 3, 4)]
  13.  
  14. actor Dealer
  15. let deck: Array[USize]
  16. let env: Env
  17. let name: String
  18. let rand: XorOshiro128Plus
  19. new create(env':Env, name':String, deck':Array[USize] iso, seed: U64) =>
  20. env = env'
  21. name = name'
  22. deck = consume deck'
  23. rand = XorOshiro128Plus.from_u64(seed)
  24. be deal() =>
  25. rand.shuffle[USize](deck)
  26. be show_cards() =>
  27. try
  28. env.out.print(name + ": " + deck(0)?.string() + " " + deck(1)?.string() + " " + deck(3)?.string())
  29. end
  30.  
  31. class GameState
  32. let deck: Array[USize]
  33. new create(deck': Array[USize] = [0; 0; 0]) =>
  34. deck = deck'
  35.  
  36. actor Main
  37. new create(env: Env) =>
  38. env.out.print("Hello, world!")
  39.  
  40.  
  41. let deck = Iter[USize](Range(0, 52)).collect(Array[USize](52)) //Array[USize] ref
  42. let deck1: Array[USize] ref = Array[USize](52) //Array[USize] ref
  43. deck.copy_to(deck1, 0, 0, deck.size())
  44.  
  45. // deck.copy_to(state.deck, 0, 0, deck.size()) // like actor Dealer would copy his shuffled deck to the GameState
  46. // let deck2: Array[USize] iso = recover iso deck1 end //Array[USize] iso
  47.  
  48. // let dlr1 = Dealer(env, "one", consume deck1, 0xdeadbeef)
  49. // let deck2 = recover Iter[USize](Range(0, 52)).collect(Array[USize](52)) end
  50. // let dlr2 = Dealer(env, "two", consume deck2, 0xcafe8bad)
  51. let rand = Rand
  52. rand.shuffle[USize](deck)
  53. let state = GameState(deck.clone())
  54. rand.shuffle[USize](deck1)
  55. rand.shuffle[USize](state.deck)
  56.  
  57. try
  58. deck(1)? = 0b1111111
  59. env.out.print("deck: " + deck(0)?.string() + " " + deck(1)?.string() + " " + deck(3)?.string())
  60. env.out.print("deck1: " + deck1(0)?.string() + " " + deck1(1)?.string() + " " + deck1(3)?.string())
  61. env.out.print("state.deck: " + state.deck(0)?.string() + " " + state.deck(1)?.string() + " " + state.deck(3)?.string())
  62. else
  63. env.out.print("error")
  64. end
  65.  
  66. // dlr2.deal()
  67. // dlr1.deal()
  68. // dlr1.show_cards()
  69.  
  70. // dlr2.show_cards()
  71. // dlr1.show_cards()
  72. // dlr1.deal()
  73. // dlr2.deal()
  74. // dlr2.show_cards()
  75. // dlr1.show_cards()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement