def open_mono.go

minebender-game@1.0.0.0 · proof_laws.bend:366

import minebender-game@1.0.0.0/proof_laws.bend as ProofLaws
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/game.bend as G
import minebender-game@1.0.0.0/proof_flood.bend as PF

366def open_mono.go(+w: Nat, +h: Nat, +layout: T.Grid(Bool), +shown: T.Grid(Bool), +flags: List<&2, T.Pos>,
367  +status: T.Status, +p: T.Pos, +q: T.Pos, s: {B.at(Bool, False{}, shown, q) == True{} : Bool}, +c: Bool, +m: Bool) ->
368  {B.at(Bool, False{}, shown_of(G.open.go(c, m, G.Game{w, h, layout, shown, flags, status}, p)), q) == True{} : Bool}:
369  match c m:
370    case False{} _:
371      s
372    case True{} True{}:
373      PF.at_set_mono(shown, p, q, s)
374    case True{} False{}:
375      +start = {[G.Work{p, Nil{}}] : List<&2, G.Work>}
376      PF.flood_mono(B.count_false(shown), start, G.head_hidden(w, h, shown, start), w, h, layout, shown, q, s)

Uses (15)

Used by (1)