Equations
- AP.Alt₁.board₀ = { squares := Set.univ, A := AP.Alt₁.center }
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
- m : AMove
- h : AMoveValid pw b self.m
Instances For
Equations
- AP.Alt₁.AHasValidMove pw b = ∃ (m : AP.Alt₁.AMove), AP.Alt₁.AMoveValid pw b m
Instances For
Equations
Instances For
- f (s : State) : s.act → AHasValidMove pw s.board → ValidAMove pw s.board
Instances For
Equations
- AP.Alt₁.applyAMoveB b m = { squares := b.squares, A := m }
Instances For
Equations
- AP.Alt₁.applyAMove s m = AP.Alt₁.applyMove s (AP.Alt₁.applyAMoveB s.board m)
Instances For
Equations
- AP.Alt₁.applyDMove s m = AP.Alt₁.applyMove s (AP.Alt₁.applyDMoveB s.board m)
Instances For
def
AP.Alt₁.playAMoveAt'
{pw pw₁ : ℕ}
(a₁ : A pw₁)
(g : Game pw)
(hs : g.s.act)
(h : AHasValidMove pw₁ g.s.board)
:
Game pw
Equations
- AP.Alt₁.playAMoveAt' a₁ g hs h = g.setState (AP.Alt₁.applyAMove g.s (a₁.f g.s hs h).m)
Instances For
Equations
- AP.Alt₁.playAMoveAt g = if h : g.act ∧ AP.Alt₁.AHasValidMove pw g.s.board then AP.Alt₁.playAMoveAt' g.a g ⋯ ⋯ else g.finish
Instances For
Equations
- g.playMove = if hs : g.act then AP.Alt₁.playAMoveAt (AP.Alt₁.playDMoveAt g hs) else g
Instances For
Equations
- AP.Alt₁.AHwsAt pw s = ∃ (a : AP.Alt₁.A pw), ∀ (d : AP.Alt₁.D), (AP.Alt₁.initGame a d s).AWins
Instances For
Equations
- AP.Alt₁.DHwsAt pw s = ∃ (d : AP.Alt₁.D), ∀ (a : AP.Alt₁.A pw), (AP.Alt₁.initGame a d s).DWins