Skip to content

Instantly share code, notes, and snippets.

View CalfordMath's full-sized avatar

Timothy Calford CalfordMath

View GitHub Profile
@zapakh
zapakh / do_maze.py
Created May 22, 2024 06:01
In-situ DFS maze solver for The Farmer Was Replaced
# Make sure you have enough Fertilizer before starting.
def do_maze(iterations=1):
# Define some geometry help for later
opp = {North: South, East: West,
South: North, West: East}
dx = {North: 0, East: 1, South: 0, West: -1}
dy = {North: 1, East: 0, South: -1, West: 0}
# Start a Maze.
harvest()
solver=LAMBDA(grid,
LET(
numbers, SEQUENCE(9),
numgrid, SEQUENCE(9,9,0),
vgrid, TOCOL(grid*1),
pos, XMATCH(0,vgrid)-1,
IF(
ISNA(pos), grid,
LET(
i,INT(pos/9),
//ref: https://codereview.stackexchange.com/q/199771
solver=LAMBDA(grid,
LET(numbers,SEQUENCE(9),
numgrid,SEQUENCE(9,9,0),
pos,XMATCH(0,TOCOL(grid*1))-1,
IF(ISNA(pos),
grid,
LET(i,INT(pos/9),
j,MOD(pos,9),