diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2025-06-06 21:02:03 -0500 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2025-07-03 22:01:22 -0400 |
| commit | 6ffc381407883a3db743e5493f99e8bc331cbdc5 (patch) | |
| tree | 7605130ef690e53fb1f2213e0cb14f7bd9d02fc7 | |
| parent | e1bda71495090fdea33320a5c4a98f1a29f3d88f (diff) | |
| download | muhqs-game-6ffc381407883a3db743e5493f99e8bc331cbdc5.tar.gz muhqs-game-6ffc381407883a3db743e5493f99e8bc331cbdc5.zip | |
make draft pool big enough
| -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) } |
