Cut a rectangle: Difference between revisions

Line 2,248:
ClearAll[ValidPosition, ValidRoute, ProceedStep];
ValidPosition[{x_, y_}] := 0 <= x <= n \[And] 0 <= y <= m;
ValidRoute[route_List] := Module[{},
If[route[[2, 1]] == 0,
If[MemberQ[route[[3 ;;, 2]], 0],
Return[False];
];
];
If[route[[2, 2]] == 0,
If[MemberQ[route[[3 ;;, 1]], 0],
Return[False];
];
];
If[MatchQ[route[[All, 1]], {0 .., Except[0] .., 0, ___}], Return[False]]; (* once it leaves the left border, don't return (disjoint pieces) *)
If[MatchQ[route[[All, 2]], {0 .., Except[0] .., 0, ___}], Return[False]];(* once it leaves the bottom border, don't return (disjoint pieces) *)
1,111

edits