diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2025-06-06 21:02:03 -0500 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2025-08-20 15:57:18 +0200 |
| commit | 79e0374f7eab4f0f3ee48315b27bdc879b43be47 (patch) | |
| tree | 8283612e5498302ee5f5a130835563f18bce1b9d /go | |
| parent | 0585f313f28966efe654714b370969781f5a3e91 (diff) | |
| download | muhqs-game-79e0374f7eab4f0f3ee48315b27bdc879b43be47.tar.gz muhqs-game-79e0374f7eab4f0f3ee48315b27bdc879b43be47.zip | |
make draft pool big enough
Diffstat (limited to 'go')
| -rw-r--r-- | go/game/draft.go | 23 |
1 files changed, 12 insertions, 11 deletions
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) } |
