def hc_member.go

minebender-game@1.0.0.0 · proof_solver.bend:2032

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_grid.bend as PG
import minebender-game@1.0.0.0/proof_cells.bend as PS

2032def hc_member.go(+rows: T.Grid(T.Seen), +p: T.Pos, +t: List<&2, T.Pos>, +q: T.Pos,
2033  hq: {S.is_hidden(B.at(T.Seen, T.Hidden{}, rows, q)) == True{} : Bool},
2034  r: Or({B.same(p, q) == True{} : Bool}, {B.contains(t, q) == True{} : Bool}),
2035  ih: {B.contains(t, q) == True{} : Bool} -> {B.contains(S.hidden_cells(rows, t), q) == True{} : Bool}) ->
2036  {B.contains(S.hidden_cells(rows, p <> t), q) == True{} : Bool}:
2037  match r:
2038    case Inl{pq}:
2039      %Equal.sym(T.Pos, p, q, PG.same_sound(p, q, pq)) :
2040        {B.contains(List.filter.put(T.Pos, _, S.hidden_cells(rows, t), S.is_hidden(B.at(T.Seen, T.Hidden{}, rows, _))), q) == True{} : Bool}
2041      %Equal.sym(Bool, S.is_hidden(B.at(T.Seen, T.Hidden{}, rows, q)), True{}, hq) :
2042        {B.contains(List.filter.put(T.Pos, q, S.hidden_cells(rows, t), _), q) == True{} : Bool}
2043      PG.contains_cons_self(q, S.hidden_cells(rows, t))
2044    case Inr{m}:
2045      PS.put_keeps(p, S.hidden_cells(rows, t), S.is_hidden(B.at(T.Seen, T.Hidden{}, rows, p)), q, ih(m))

Uses (17)

Used by (1)