aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2025-06-06 21:02:03 -0500
committerFlorian Fischer <florian.fischer@muhq.space>2025-07-03 22:01:22 -0400
commit6ffc381407883a3db743e5493f99e8bc331cbdc5 (patch)
tree7605130ef690e53fb1f2213e0cb14f7bd9d02fc7
parente1bda71495090fdea33320a5c4a98f1a29f3d88f (diff)
downloadmuhqs-game-6ffc381407883a3db743e5493f99e8bc331cbdc5.tar.gz
muhqs-game-6ffc381407883a3db743e5493f99e8bc331cbdc5.zip
make draft pool big enough
-rw-r--r--go/game/draft.go23
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)
}