Module Assign NameStore Call NameLoad Assign NameStore NameLoad Assign NameStore Call NameLoad ClassDef bases NameLoad body FunctionDef arguments args NameParam NameParam NameParam NameParam defaults body Assign NameStore Call NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr Call NameLoad Assign AttributeStore NameLoad attr ListLoad Assign NameStore ListLoad For NameStore Call NameLoad NameLoad body Assign NameStore ListLoad For NameStore Call NameLoad NameLoad body Assign NameStore SubscriptLoad NameLoad Index TupleLoad NameLoad NameLoad If CompareIs NameLoad NameLoad body Assign SubscriptStore NameLoad Index TupleLoad NameLoad NameLoad Num Expr Call AttributeLoad NameLoad attr TupleLoad NameLoad NameLoad Expr Call AttributeLoad AttributeLoad NameLoad attr attr TupleLoad NameLoad NameLoad orelse If CompareIs NameLoad NameLoad body Assign SubscriptStore NameLoad Index TupleLoad NameLoad NameLoad NameLoad orelse If CompareIs NameLoad NameLoad body Expr Call AttributeLoad AttributeLoad NameLoad attr attr TupleLoad NameLoad NameLoad Assign NameStore BinOpSub AttributeLoad NameLoad attr Num Assign NameStore BinOpSub AttributeLoad NameLoad attr Num While NameLoad body Assign NameStore ListLoad For TupleStore NameStore NameStore NameLoad body Assign NameStore SubscriptLoad NameLoad Index TupleLoad NameLoad NameLoad If BoolOpAnd CompareGt NameLoad Num CompareNotIn TupleLoad BinOpSub NameLoad Num NameLoad NameLoad body Assign SubscriptStore NameLoad Index TupleLoad BinOpSub NameLoad Num NameLoad BinOpAdd NameLoad Num Expr Call AttributeLoad NameLoad attr TupleLoad BinOpSub NameLoad Num NameLoad If BoolOpAnd CompareLt NameLoad NameLoad CompareNotIn TupleLoad BinOpAdd NameLoad Num NameLoad NameLoad body Assign SubscriptStore NameLoad Index TupleLoad BinOpAdd NameLoad Num NameLoad BinOpAdd NameLoad Num Expr Call AttributeLoad NameLoad attr TupleLoad BinOpAdd NameLoad Num NameLoad If BoolOpAnd CompareGt NameLoad Num CompareNotIn TupleLoad NameLoad BinOpSub NameLoad Num NameLoad body Assign SubscriptStore NameLoad Index TupleLoad NameLoad BinOpSub NameLoad Num BinOpAdd NameLoad Num Expr Call AttributeLoad NameLoad attr TupleLoad NameLoad BinOpSub NameLoad Num If BoolOpAnd CompareLt NameLoad NameLoad CompareNotIn TupleLoad NameLoad BinOpAdd NameLoad Num NameLoad body Assign SubscriptStore NameLoad Index TupleLoad NameLoad BinOpAdd NameLoad Num BinOpAdd NameLoad Num Expr Call AttributeLoad NameLoad attr TupleLoad NameLoad BinOpAdd NameLoad Num Assign NameStore NameLoad For NameStore Call NameLoad Call AttributeLoad NameLoad attr body If BoolOpOr CompareIs SubscriptLoad NameLoad Index NameLoad NameLoad CompareIs SubscriptLoad NameLoad Index NameLoad NameLoad body Delete SubscriptDel NameLoad Index NameLoad Return NameLoad decorator_list NameLoad FunctionDef arguments args NameParam NameParam defaults Dict body Import alias For NameStore Call NameLoad AttributeLoad NameLoad attr body Expr Call AttributeLoad AttributeLoad NameLoad attr attr BinOpMod Str NameLoad For NameStore Call NameLoad AttributeLoad NameLoad attr body Assign NameStore TupleLoad NameLoad NameLoad If CompareIn NameLoad NameLoad body Assign NameStore Str orelse Assign NameStore Call AttributeLoad NameLoad attr NameLoad If CompareIs NameLoad NameLoad body Assign NameStore Str orelse If CompareIs NameLoad NameLoad body Assign NameStore Str orelse Assign NameStore Call NameLoad BinOpAdd NameLoad Call NameLoad Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Print Print Print Str For NameStore Call NameLoad AttributeLoad NameLoad attr body Expr Call AttributeLoad AttributeLoad NameLoad attr attr BinOpMod Str BinOpMod NameLoad Num Print decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str Assign NameStore ListLoad If BoolOpAnd CompareGt NameLoad Num CompareLt NameLoad BinOpSub AttributeLoad NameLoad attr Num body Assign NameStore BinOpSub NameLoad Num Assign NameStore BinOpAdd NameLoad Num If BoolOpAnd CompareIn TupleLoad NameLoad NameLoad NameLoad CompareIn TupleLoad NameLoad NameLoad NameLoad CompareIn TupleLoad NameLoad NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr TupleLoad SubscriptLoad NameLoad Index TupleLoad NameLoad NameLoad TupleLoad NameLoad NameLoad If BoolOpAnd CompareLt NameLoad BinOpSub AttributeLoad NameLoad attr Num CompareLt NameLoad BinOpSub AttributeLoad NameLoad attr Num body Assign NameStore BinOpAdd NameLoad Num Assign NameStore BinOpAdd NameLoad Num If BoolOpAnd CompareIn TupleLoad NameLoad NameLoad NameLoad CompareIn TupleLoad NameLoad NameLoad NameLoad CompareIn TupleLoad NameLoad NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr TupleLoad SubscriptLoad NameLoad Index TupleLoad NameLoad NameLoad TupleLoad NameLoad NameLoad If BoolOpAnd CompareGt NameLoad Num CompareGt NameLoad Num body Assign NameStore BinOpSub NameLoad Num Assign NameStore BinOpSub NameLoad Num If BoolOpAnd CompareIn TupleLoad NameLoad NameLoad NameLoad CompareIn TupleLoad NameLoad NameLoad NameLoad CompareIn TupleLoad NameLoad NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr TupleLoad SubscriptLoad NameLoad Index TupleLoad NameLoad NameLoad TupleLoad NameLoad NameLoad If BoolOpAnd CompareLt NameLoad BinOpSub AttributeLoad NameLoad attr Num CompareGt NameLoad Num body Assign NameStore BinOpAdd NameLoad Num Assign NameStore BinOpSub NameLoad Num If BoolOpAnd CompareIn TupleLoad NameLoad NameLoad NameLoad CompareIn TupleLoad NameLoad NameLoad NameLoad CompareIn TupleLoad NameLoad NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr TupleLoad SubscriptLoad NameLoad Index TupleLoad NameLoad NameLoad TupleLoad NameLoad NameLoad If CompareGt NameLoad Num body Assign NameStore BinOpSub NameLoad Num If CompareIn TupleLoad NameLoad NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr TupleLoad SubscriptLoad NameLoad Index TupleLoad NameLoad NameLoad TupleLoad NameLoad NameLoad If CompareLt NameLoad BinOpSub AttributeLoad NameLoad attr Num body Assign NameStore BinOpAdd NameLoad Num If CompareIn TupleLoad NameLoad NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr TupleLoad SubscriptLoad NameLoad Index TupleLoad NameLoad NameLoad TupleLoad NameLoad NameLoad If CompareGt NameLoad Num body Assign NameStore BinOpSub NameLoad Num If CompareIn TupleLoad NameLoad NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr TupleLoad SubscriptLoad NameLoad Index TupleLoad NameLoad NameLoad TupleLoad NameLoad NameLoad If CompareLt NameLoad BinOpSub AttributeLoad NameLoad attr Num body Assign NameStore BinOpAdd NameLoad Num If CompareIn TupleLoad NameLoad NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr TupleLoad SubscriptLoad NameLoad Index TupleLoad NameLoad NameLoad TupleLoad NameLoad NameLoad Expr Call AttributeLoad NameLoad attr Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Return SubscriptLoad SubscriptLoad Call AttributeLoad NameLoad attr NameLoad NameLoad Index Num Index Num decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore Call NameLoad NameLoad Assign NameStore AttributeLoad NameLoad attr Assign NameStore Call NameLoad While NameLoad body AugAssignBitOr NameStore Call NameLoad NameLoad Assign NameStore Call NameLoad For TupleStore NameStore NameStore NameLoad body Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad Expr Call AttributeLoad NameLoad attr While NameLoad body Assign NameStore Call AttributeLoad NameLoad attr Assign NameStore SubscriptLoad NameLoad Index Num If CompareIn NameLoad AttributeLoad NameLoad attr body Return NameLoad If BoolOpAnd CompareNotIn NameLoad NameLoad CompareNotIn NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad Break Assign NameStore Call NameLoad NameLoad Return NameLoad decorator_list decorator_list If CompareEq NameLoad Str body Assign NameStore Call AttributeLoad Str attr Assign NameStore ListComp Call AttributeLoad NameLoad attr comprehension NameStore Call AttributeLoad NameLoad attr Assign NameStore Call NameLoad NameLoad Assign NameStore Call NameLoad SubscriptLoad NameLoad Index Num Assign NameStore Dict For TupleStore NameStore NameStore Call NameLoad NameLoad body For TupleStore NameStore NameStore Call NameLoad NameLoad body If CompareEq NameLoad Str body Assign NameStore NameLoad orelse If CompareEq NameLoad Str body Assign NameStore NameLoad orelse If CompareEq NameLoad Str body Assign NameStore NameLoad orelse If CompareEq NameLoad Str body Assign NameStore NameLoad orelse Assign NameStore NameLoad Assign SubscriptStore NameLoad Index TupleLoad BinOpMult NameLoad Num BinOpMult NameLoad Num NameLoad Assign SubscriptStore NameLoad Index TupleLoad BinOpAdd BinOpMult NameLoad Num Num BinOpMult NameLoad Num NameLoad Assign SubscriptStore NameLoad Index TupleLoad BinOpMult NameLoad Num BinOpAdd BinOpMult NameLoad Num Num NameLoad Assign SubscriptStore NameLoad Index TupleLoad BinOpAdd BinOpMult NameLoad Num Num BinOpAdd BinOpMult NameLoad Num Num NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad BinOpMult NameLoad Num BinOpMult NameLoad Num Expr Call AttributeLoad NameLoad attr Print Call AttributeLoad NameLoad attr Num Num Print Str Expr Call AttributeLoad NameLoad attr Call NameLoad TupleLoad TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num Assert CompareEq Call AttributeLoad NameLoad attr TupleLoad NameLoad Assert CompareEq Call AttributeLoad NameLoad attr TupleLoad TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num NameLoad Assert CompareEq Call AttributeLoad NameLoad attr TupleLoad TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num TupleLoad Num Num NameLoad
N/A N/A Blocker N/A object N/A Start False N/A End N/A object Path N/A dict N/A determine_path N/A N/A cls field width height N/A N/A N/A path N/A cls N/A N/A path width width N/A N/A path height height N/A N/A path ends N/A set N/A N/A path starts N/A N/A cells N/A N/A y N/A range height N/A N/A m N/A N/A x N/A range width N/A N/A cell N/A field N/A N/A x y N/A N/A cell End N/A N/A N/A path N/A N/A x y 0 N/A N/A N/A cells append N/A x y N/A N/A N/A N/A path ends add N/A x y N/A N/A N/A cell Blocker N/A N/A N/A path N/A N/A x y Blocker N/A N/A N/A cell Start N/A N/A N/A N/A N/A path starts append N/A x y N/A x_extent N/A N/A path width 1 N/A y_extent N/A N/A path height 1 N/A cells N/A N/A new N/A N/A N/A x y cells N/A N/A v N/A path N/A N/A x y N/A N/A N/A x 0 N/A N/A N/A x 1 y path N/A N/A N/A path N/A N/A N/A x 1 y N/A v 1 N/A N/A N/A new append N/A N/A x 1 y N/A N/A N/A x x_extent N/A N/A N/A x 1 y path N/A N/A N/A path N/A N/A N/A x 1 y N/A v 1 N/A N/A N/A new append N/A N/A x 1 y N/A N/A N/A y 0 N/A N/A x N/A y 1 path N/A N/A N/A path N/A N/A x N/A y 1 N/A v 1 N/A N/A N/A new append N/A x N/A y 1 N/A N/A N/A y y_extent N/A N/A x N/A y 1 path N/A N/A N/A path N/A N/A x N/A y 1 N/A v 1 N/A N/A N/A new append N/A x N/A y 1 N/A cells new N/A k N/A list N/A N/A path keys N/A N/A N/A N/A N/A path N/A k Blocker N/A N/A path N/A k None N/A N/A N/A path N/A k N/A path N/A classmethod dump N/A N/A self mods N/A N/A N/A N/A sys N/A y N/A range N/A self height N/A N/A N/A N/A N/A sys stdout write N/A %02d  y N/A x N/A range N/A self width N/A N/A p N/A x y N/A N/A p mods N/A N/A c * N/A N/A c N/A N/A self get p N/A N/A c None N/A N/A c . N/A N/A N/A c Blocker N/A N/A c # N/A N/A c N/A chr N/A c N/A ord 0 N/A N/A N/A N/A sys stdout write c N/A N/A N/A N/A i N/A range N/A self width N/A N/A N/A N/A N/A sys stdout write N/A %d N/A i 10 N/A N/A get_neighbors N/A N/A self x y N/A N/A N/A May move horizontal, vertical or diagonal as long as there's not
        a blocker on both sides of the diagonal.
         N/A l N/A N/A N/A N/A x 0 N/A y N/A N/A self height 1 N/A N/A tx N/A x 1 N/A ty N/A y 1 N/A N/A N/A N/A x ty self N/A N/A tx y self N/A N/A tx ty self N/A N/A N/A N/A l append N/A N/A self N/A N/A tx ty N/A tx ty N/A N/A N/A x N/A N/A self width 1 N/A y N/A N/A self height 1 N/A N/A tx N/A x 1 N/A ty N/A y 1 N/A N/A N/A N/A x ty self N/A N/A tx y self N/A N/A tx ty self N/A N/A N/A N/A l append N/A N/A self N/A N/A tx ty N/A tx ty N/A N/A N/A x 0 N/A y 0 N/A N/A tx N/A x 1 N/A ty N/A y 1 N/A N/A N/A N/A x ty self N/A N/A tx y self N/A N/A tx ty self N/A N/A N/A N/A l append N/A N/A self N/A N/A tx ty N/A tx ty N/A N/A N/A x N/A N/A self width 1 N/A y 0 N/A N/A tx N/A x 1 N/A ty N/A y 1 N/A N/A N/A N/A x ty self N/A N/A tx y self N/A N/A tx ty self N/A N/A N/A N/A l append N/A N/A self N/A N/A tx ty N/A tx ty N/A N/A x 0 N/A N/A tx N/A x 1 N/A N/A N/A tx y self N/A N/A N/A N/A l append N/A N/A self N/A N/A tx y N/A tx y N/A N/A x N/A N/A self width 1 N/A N/A tx N/A x 1 N/A N/A N/A tx y self N/A N/A N/A N/A l append N/A N/A self N/A N/A tx y N/A tx y N/A N/A y 0 N/A N/A ty N/A y 1 N/A N/A N/A x ty self N/A N/A N/A N/A l append N/A N/A self N/A N/A x ty N/A x ty N/A N/A y N/A N/A self height 1 N/A N/A ty N/A y 1 N/A N/A N/A x ty self N/A N/A N/A N/A l append N/A N/A self N/A N/A x ty N/A x ty N/A N/A N/A l sort N/A l N/A next_step N/A N/A self x y N/A N/A N/A N/A N/A N/A N/A self get_neighbors x y N/A 0 N/A 1 N/A test_mod N/A N/A self set_cells N/A N/A N/A Determine whether the map would be solvable if the cells
        provided are blocked.
         N/A set_cells N/A set set_cells N/A current N/A self starts N/A visited N/A set N/A current N/A N/A visited N/A set current N/A next N/A set N/A N/A x y current N/A N/A options N/A N/A self get_neighbors x y N/A N/A N/A options reverse N/A options N/A N/A c N/A N/A options pop N/A p N/A c N/A 1 N/A N/A p N/A self ends N/A N/A True N/A N/A N/A p set_cells N/A p visited N/A N/A N/A N/A next add p N/A N/A current N/A list next N/A False N/A N/A N/A N/A __name__ __main__ N/A N/A field_cells N/A N/A 
++++SSS+++++
+####.#####+
+#........#+
S#.......##E
S..........E
S#.......##E
+#..###...#+
+####.#####+
++++EEE+++++
 strip N/A field_rows N/A N/A N/A line strip N/A line N/A N/A field_cells splitlines N/A height N/A len field_rows N/A width N/A len N/A field_rows N/A 0 N/A play_field N/A N/A N/A y line N/A enumerate field_rows N/A N/A N/A x cell N/A enumerate line N/A N/A N/A cell # N/A N/A content Blocker N/A N/A N/A cell E N/A N/A content End N/A N/A N/A cell S N/A N/A content Start N/A N/A N/A cell + N/A N/A content Blocker N/A N/A content None N/A N/A play_field N/A N/A N/A x 2 N/A y 2 content N/A N/A play_field N/A N/A N/A N/A x 2 1 N/A y 2 content N/A N/A play_field N/A N/A N/A x 2 N/A N/A y 2 1 content N/A N/A play_field N/A N/A N/A N/A x 2 1 N/A N/A y 2 1 content N/A path N/A N/A Path determine_path play_field N/A width 2 N/A height 2 N/A N/A N/A path dump N/A N/A N/A path get_neighbors 7 13 N/A TEST BLOCKING MODS N/A N/A N/A path dump N/A set N/A N/A 18 8 N/A 19 8 N/A 18 9 N/A 19 9 N/A N/A N/A N/A path test_mod N/A True N/A N/A N/A N/A path test_mod N/A N/A 18 8 N/A 19 8 N/A 18 9 N/A 19 9 False N/A N/A N/A N/A path test_mod N/A N/A 0 8 N/A 0 8 N/A 1 9 N/A 1 9 True