Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use "random"
- use "itertools"
- use "collections"
- primitive Bet
- primitive Draw
- class GameDefinition
- let handedness: USize = 15
- let round_types: Array[(Bet | Draw)] = [Bet; Draw; Bet; Draw; Bet]
- let small_blind: USize = 50
- let bogo: Array[(U32, U32, U32, U32)] = [(0, 0, 0, 0); (1, 2, 3, 4)]
- actor Dealer
- let deck: Array[USize]
- let env: Env
- let name: String
- let rand: XorOshiro128Plus
- new create(env':Env, name':String, deck':Array[USize] iso, seed: U64) =>
- env = env'
- name = name'
- deck = consume deck'
- rand = XorOshiro128Plus.from_u64(seed)
- be deal() =>
- rand.shuffle[USize](deck)
- be show_cards() =>
- try
- env.out.print(name + ": " + deck(0)?.string() + " " + deck(1)?.string() + " " + deck(3)?.string())
- end
- class GameState
- let deck: Array[USize]
- new create(deck': Array[USize] = [0; 0; 0]) =>
- deck = deck'
- actor Main
- new create(env: Env) =>
- env.out.print("Hello, world!")
- let deck = Iter[USize](Range(0, 52)).collect(Array[USize](52)) //Array[USize] ref
- let deck1: Array[USize] ref = Array[USize](52) //Array[USize] ref
- deck.copy_to(deck1, 0, 0, deck.size())
- // deck.copy_to(state.deck, 0, 0, deck.size()) // like actor Dealer would copy his shuffled deck to the GameState
- // let deck2: Array[USize] iso = recover iso deck1 end //Array[USize] iso
- // let dlr1 = Dealer(env, "one", consume deck1, 0xdeadbeef)
- // let deck2 = recover Iter[USize](Range(0, 52)).collect(Array[USize](52)) end
- // let dlr2 = Dealer(env, "two", consume deck2, 0xcafe8bad)
- let rand = Rand
- rand.shuffle[USize](deck)
- let state = GameState(deck.clone())
- rand.shuffle[USize](deck1)
- rand.shuffle[USize](state.deck)
- try
- deck(1)? = 0b1111111
- env.out.print("deck: " + deck(0)?.string() + " " + deck(1)?.string() + " " + deck(3)?.string())
- env.out.print("deck1: " + deck1(0)?.string() + " " + deck1(1)?.string() + " " + deck1(3)?.string())
- env.out.print("state.deck: " + state.deck(0)?.string() + " " + state.deck(1)?.string() + " " + state.deck(3)?.string())
- else
- env.out.print("error")
- end
- // dlr2.deal()
- // dlr1.deal()
- // dlr1.show_cards()
- // dlr2.show_cards()
- // dlr1.show_cards()
- // dlr1.deal()
- // dlr2.deal()
- // dlr2.show_cards()
- // dlr1.show_cards()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement