diff options
| author | JP Appel <jeanpierre.appel01@gmail.com> | 2024-09-11 22:27:00 -0400 |
|---|---|---|
| committer | JP Appel <jeanpierre.appel01@gmail.com> | 2024-09-11 22:27:00 -0400 |
| commit | a0ab77f2e8f21a7096dc9b0828907d6e4e34fc2d (patch) | |
| tree | 2929f087116ba6b2ee1bd3b2482f8197509313cb /bingo/generators.go | |
| parent | 4d9a3334fbfea46ac1d17648ac532b8ff8b0363b (diff) | |
Start work on bingo functionality
Created a simple struct for game state.
Started work on board generators and their seeds.
Diffstat (limited to 'bingo/generators.go')
| -rw-r--r-- | bingo/generators.go | 41 |
1 files changed, 41 insertions, 0 deletions
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 +} |
