Game.flood: def of minebender-game@1.0.0.0 Import: import minebender-game@1.0.0.0/game.bend as Game Lines 239-257 of minebender-game@1.0.0.0/game.bend: https://jend.leeeet.dev/read.txt?path=minebender-game@1.0.0.0/game.bend&start_line=239&end_line=257 import Base import minebender-game@1.0.0.0/types.bend as T import minebender-game@1.0.0.0/board.bend as B # Reveal the cells of `work`, and the neighbours of every zero revealed. n is # how many cells are not revealed yet: each reveal uses one up. def flood(+n: Nat, work: List<&2, Work>, hd: Bool, +w: Nat, +h: Nat, +layout: T.Grid(Bool), +shown: T.Grid(Bool)) -> T.Grid(Bool): match n: case 0n: shown case 1n+m: match work: case Nil{}: shown case Work{+c, +back} <> +rest: match hd: case False{}: flood(n, rest, head_hidden(w, h, shown, rest), w, h, layout, shown) case True{}: +sh = B.set_at(Bool, shown, c, True{}) +wk = push(B.zero(w, h, layout, c), B.neighbours(w, h, c), back, rest) flood(m, wk, head_hidden(w, h, sh, wk), w, h, layout, sh) Uses (10): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat https://jend.leeeet.dev/definition.txt?path=minebender-game@1.0.0.0/board.bend&name=neighbours https://jend.leeeet.dev/definition.txt?path=minebender-game@1.0.0.0/board.bend&name=set_at https://jend.leeeet.dev/definition.txt?path=minebender-game@1.0.0.0/board.bend&name=zero https://jend.leeeet.dev/definition.txt?path=minebender-game@1.0.0.0/game.bend&name=Work https://jend.leeeet.dev/definition.txt?path=minebender-game@1.0.0.0/game.bend&name=head_hidden https://jend.leeeet.dev/definition.txt?path=minebender-game@1.0.0.0/game.bend&name=push https://jend.leeeet.dev/definition.txt?path=minebender-game@1.0.0.0/types.bend&name=Grid