def hc_sound.t

minebender-game@1.0.0.0 · proof_solver.bend:2070

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

2070def hc_sound.t(+rows: T.Grid(T.Seen), +p: T.Pos, +t: List<&2, T.Pos>, +q: T.Pos,
2071  be: {S.is_hidden(B.at(T.Seen, T.Hidden{}, rows, p)) == True{} : Bool},
2072  r: Or({B.same(p, q) == True{} : Bool}, {B.contains(S.hidden_cells(rows, t), q) == True{} : Bool}),
2073  ih: {B.contains(S.hidden_cells(rows, t), q) == True{} : Bool} ->
2074    {S.is_hidden(B.at(T.Seen, T.Hidden{}, rows, q)) == True{} : Bool} & {B.contains(t, q) == True{} : Bool}) ->
2075  {S.is_hidden(B.at(T.Seen, T.Hidden{}, rows, q)) == True{} : Bool} & {B.contains(p <> t, q) == True{} : Bool}:
2076  match r:
2077    case Inl{+pq}:
2078      (%PG.same_sound(p, q, pq) : {S.is_hidden(B.at(T.Seen, T.Hidden{}, rows, _)) == True{} : Bool}; be,
2079        or_l(B.same(p, q), B.contains(t, q), pq))
2080    case Inr{m}:
2081      hc_sound.f(rows, p, t, q, ih(m))

Uses (17)

Used by (1)