summaryrefslogtreecommitdiff
path: root/engine/game
diff options
context:
space:
mode:
Diffstat (limited to 'engine/game')
-rw-r--r--engine/game/game.go33
1 files changed, 33 insertions, 0 deletions
diff --git a/engine/game/game.go b/engine/game/game.go
new file mode 100644
index 0000000..7f3fa76
--- /dev/null
+++ b/engine/game/game.go
@@ -0,0 +1,33 @@
+package game
+
+import (
+ "sakura/engine/player"
+ "sakura/engine/pool"
+)
+
+type Game struct {
+ Shadow *pool.Pool
+ Distance *pool.Pool
+ Yin *player.Player
+ Yang *player.Player
+
+ Must []player.PlayerAction
+ May []player.PlayerAction
+}
+
+func (g *Game) propagate() {
+ g.Distance.OverflowsTo = g.Shadow
+}
+
+func New() *Game {
+ g := &Game{
+ Shadow: pool.New(0, pool.Infinite),
+ Distance: pool.New(0, 10),
+ Must: nil,
+ May: nil,
+ }
+ g.Yin = player.New(g)
+ g.Yang = player.New(g)
+ g.propagate()
+ return g
+}