package tala import ( "math/rand" "time" ) const ( POKER_CNT = 52 PER_CARD_COLOR_MAX = 13 ) type Card int type Poker struct { buf [POKER_CNT]Card } func (this *Poker) GetPokerBuf() [POKER_CNT]Card { return this.buf } func NewPoker() *Poker { p := &Poker{} p.init() return p } func (this *Poker) init() { for i := int32(0); i < POKER_CNT; i++ { this.buf[i] = Card(i) } rand.Seed(time.Now().UnixNano()) this.Shuffle() } func (this *Poker) Shuffle() { for i := int32(0); i < POKER_CNT; i++ { j := rand.Intn(int(i) + 1) this.buf[i], this.buf[j] = this.buf[j], this.buf[i] } }