def items_onb.cell

minebender-game@1.0.0.0 · proof_solver.bend:1634

import minebender-game@1.0.0.0/proof_solver.bend as ProofSolver
import Base
import minebender-game@1.0.0.0/types.bend as T
import minebender-game@1.0.0.0/board.bend as B
import minebender-game@1.0.0.0/solver.bend as S
import minebender-game@1.0.0.0/proof_cells.bend as PS

1634def items_onb.cell(+w: Nat, +h: Nat, +rows: T.Grid(T.Seen), +p: T.Pos, +t: List<&2, T.Pos>, +s: T.Seen,
1635  on: {B.on_board(w, h, p) == True{} : Bool},
1636  ih: {items_onb(PS.WH{w, h}, S.items(w, h, rows, t)) == True{} : Bool}) ->
1637  {items_onb(PS.WH{w, h}, S.items.put(s, p, w, h, S.items(w, h, rows, t))) == True{} : Bool}:
1638  match s:
1639    case T.Hidden{}:
1640      ih
1641    case T.Shown{k}:
1642      %Equal.sym(Bool, B.on_board(w, h, p), True{}, on) :
1643        {Bool.and(Bool.and(_, PS.allp(~PS.WH, ~PS.onb, PS.WH{w, h}, B.neighbours(w, h, p))),
1644          items_onb(PS.WH{w, h}, S.items(w, h, rows, t))) == True{} : Bool}
1645      %Equal.sym(Bool, PS.allp(~PS.WH, ~PS.onb, PS.WH{w, h}, B.neighbours(w, h, p)), True{},
1646        adj_onb(w, h, p, B.neighbours(w, h, p), PS.neighbours_all(w, h, p))) :
1647        {Bool.and(Bool.and(True{}, _), items_onb(PS.WH{w, h}, S.items(w, h, rows, t))) == True{} : Bool}
1648      ih
1649    case T.Boom{}:
1650      %Equal.sym(Bool, B.on_board(w, h, p), True{}, on) :
1651        {Bool.and(Bool.and(_, True{}), items_onb(PS.WH{w, h}, S.items(w, h, rows, t))) == True{} : Bool}
1652      ih

Uses (18)

Used by (1)