package game type Hand struct { Cards []*Card } func NewHand() *Hand { h := Hand{[]*Card{}} return &h } func (h *Hand) Size() int { return len(h.Cards) } func (h *Hand) AddCards(cards []*Card) { h.Cards = append(h.Cards, cards...) } func (h *Hand) AddCard(card *Card) { h.Cards = append(h.Cards, card) } func (h *Hand) RemoveCard(card *Card) { ncards := len(h.Cards) for i, c := range h.Cards { if c != card { continue } h.Cards[i] = h.Cards[ncards-1] h.Cards = h.Cards[:ncards-1] return } }