def hc_sound.go

minebender-game@1.0.0.0 · proof_solver.bend:2083

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

2083def hc_sound.go(+rows: T.Grid(T.Seen), +p: T.Pos, +t: List<&2, T.Pos>, +q: T.Pos, +b: Bool,
2084  be: {S.is_hidden(B.at(T.Seen, T.Hidden{}, rows, p)) == b : Bool},
2085  m: {B.contains(List.filter.put(T.Pos, p, S.hidden_cells(rows, t), b), q) == True{} : Bool},
2086  ih: {B.contains(S.hidden_cells(rows, t), q) == True{} : Bool} ->
2087    {S.is_hidden(B.at(T.Seen, T.Hidden{}, rows, q)) == True{} : Bool} & {B.contains(t, q) == True{} : Bool}) ->
2088  {S.is_hidden(B.at(T.Seen, T.Hidden{}, rows, q)) == True{} : Bool} & {B.contains(p <> t, q) == True{} : Bool}:
2089  match b:
2090    case True{}:
2091      hc_sound.t(rows, p, t, q, be, or_cases(B.same(p, q), B.contains(S.hidden_cells(rows, t), q), m), ih)
2092    case False{}:
2093      hc_sound.f(rows, p, t, q, ih(m))

Uses (15)

Used by (1)