From a0ab77f2e8f21a7096dc9b0828907d6e4e34fc2d Mon Sep 17 00:00:00 2001 From: JP Appel Date: Wed, 11 Sep 2024 22:27:00 -0400 Subject: Start work on bingo functionality Created a simple struct for game state. Started work on board generators and their seeds. --- bingo/generators.go | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 bingo/generators.go (limited to 'bingo/generators.go') diff --git a/bingo/generators.go b/bingo/generators.go new file mode 100644 index 0000000..1365f2b --- /dev/null +++ b/bingo/generators.go @@ -0,0 +1,41 @@ +package bingo + +type GameSeed string + +type Generator interface { + New(int, int) *Game + SetSeed(int64) + Seed() int64 +} + +type RandomGenerator struct { + tiles TilePool + picker TilePicker + seed int64 +} + +func (g RandomGenerator) New(size int, length int) *Game { + g.picker.Reset() + + board := make([]string, 0, size) + checked := make([]bool, size) + + for _, tile := range g.picker.Iter(size) { + board = append(board, tile) + } + + game := new(Game) + game.Board = board + game.Checked = checked + game.Length = length + + return game +} + +func (g RandomGenerator) Seed() int64 { + return g.seed +} + +func (g RandomGenerator) SetSeed(seed int64) { + g.seed = seed +} -- cgit v1.2.3