5 K+ X6 H o( g' h6 z- H1 q32.如果所有可能的移动都被尝试过,将当前位置标记为2,表示当前路径是死路。 ! A( `- M, r- ~, |/ t$ Y4 l8 @/ u33.end " a4 P n' R } N% O A w, B1 W' B34.结束search函数。8 {+ G; k* o& f Y
35.clear all+ ?% ~+ M/ c; B' f( k+ V7 z
2 k5 v; [# A2 @7 ?0 p R36.清除工作区中的所有变量。* Z, D2 N/ Z1 o8 l
37.clc6 B3 K3 |% B: e8 J1 W" ?9 `, i `
% |/ w" T% W# j38.清空命令窗口。 ' v6 c; e( k* \* E( u; P9 k. F39.定义了一个8x8的迷宫maze,其中0表示路,1表示墙。0 t! }6 [( q' N' I8 D3 {- g
40.total=0;! d1 q2 T& e: {) Q; a8 E* w$ R) b: V
: g2 [/ s2 I0 y# `8 @0 O6 j41.初始化解的数量。% V8 C( E- a! _& b
42.maze(1,1)=3; 7 |% X$ G% L$ q0 ~; q ! z. L. A+ \* r1 j6 S43.将起始位置标记为3,表示已经走过。4 g: f5 X Y5 X D' J ?, X c4 n
44.[total,maze]=search(1,1,maze,total); * G5 E, z7 t5 w7 g0 ^; q5 h5 T* v7 M; V/ ?' _ @' j
45.调用search函数开始深度优先搜索。 6 K* }" l$ p, w( e2 r9 l 0 _4 b% @: G' |7 v; ?整个过程是通过递归实现深度优先搜索,尝试从起始位置到达终点,并记录所有可能的解。在搜索过程中,迷宫中的可行路径被标记为3,死路被标记为2。搜索结束后,会显示解的数量和每个解对应的迷宫状态。 ' n8 Z4 P2 R' S- f9 C7 k4 y4 G3 I" c8 M4 I4 o4 a" i4 a4 s& I
U' M2 D b4 V: C' v; R
! u; y$ n/ X7 I4 D, G+ p7 F8 i. E9 @! F$ \, D8 i
# r( E) X+ p: I0 E' C