From 79e0374f7eab4f0f3ee48315b27bdc879b43be47 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Fri, 6 Jun 2025 21:02:03 -0500 Subject: make draft pool big enough --- go/game/draft.go | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'go') diff --git a/go/game/draft.go b/go/game/draft.go index f1ab541b..74091f5a 100644 --- a/go/game/draft.go +++ b/go/game/draft.go @@ -9,7 +9,6 @@ import ( type Draft struct { players []*Player - packs []PileOfCards cardsPerPack int packSize int packsPerPlayer int @@ -33,7 +32,7 @@ func NewDraftFromDesc(players []*Player, desc string) *Draft { func NewDraft(players []*Player, desc string, sets []SetIdentifier) *Draft { d := &Draft{players: players, sets: sets} d.parseDesc(desc) - log.Printf("created new draft %s\n", d) + log.Printf("created new draft %v\n", d) return d } @@ -49,24 +48,26 @@ func (d *Draft) Valid() bool { } // run the draft -// Rhis method only returns after the draft has finished. +// This method only returns after the draft has finished. func (d *Draft) Run() { pool := NewPileOfCards() - // TODO: increase pool to have enough cards for the draft - for _, set := range d.sets { - setDeck := NewDeck() - for _, c := range NewDeckFromCardPaths(set.CardPaths()).Cards() { - if c.IsBuyable() { - setDeck.AddCard(c) + requiredCards := d.packsPerPlayer * d.packSize + for pool.Size() < requiredCards { + for _, set := range d.sets { + setDeck := NewDeck() + for _, c := range NewDeckFromCardPaths(set.CardPaths()).Cards() { + if c.IsBuyable() { + setDeck.AddCard(c) + } } + setDeck.MoveInto(pool) } - setDeck.MoveInto(pool) } nPlayers := len(d.players) packs := make([]PileOfCards, 0, nPlayers*d.packsPerPlayer) - for _ = range len(d.players) * d.packsPerPlayer { + for range len(d.players) * d.packsPerPlayer { pack := NewRandomPackFromPool(pool, d.packSize) packs = append(packs, pack) } -- cgit v1.2.3