def reach.run

minebender-game@1.0.0.0 · solver.bend:398

import minebender-game@1.0.0.0/solver.bend as Solver
import Base
import minebender-game@1.0.0.0/types.bend as T
import minebender-game@1.0.0.0/board.bend as B

398# Visit cells until none is left to visit (fuel: more than the cells).
399def reach.run(fuel: Nat, +relg: T.Grid(List<&2, Item>), r: Reach) -> Reach:
400  match fuel:
401    case 0n:
402      r
403    case 1n+f:
404      match r:
405        case Reach{queue, order, vis}:
406          match queue:
407            case Nil{}:
408              Reach{Nil{}, order, vis}
409            case +q <> rest:
410              reach.run(f, relg, reach.items(B.at(List<&2, Item>, Nil{}, relg, q), relg, Reach{rest, order, vis}))

Uses (7)

Used by (2)