有老哥可以说一下代码该怎么改吗
,刚刚接触matlab,感觉到处都是漏洞(最后u=7就好了)
fild=[4 0 0 1;
5 0 3 2;
6 5 0 3;
7 0 0 4];
limx=4;
limy=4;
prompt='请输入每次允许的最大步数'
maxfoot=input(prompt);
prompt='请输入每次允许的最小步数'
minfoot=input(prompt);
u=fild(1,4);
i=1
while u~=7
move=minfoot+fix(rand()*(maxfoot-minfoot+1));
if mod(i,2)==1 & u~=0
for m=move:-1:minfoot
limx=limx-m;
limy=limy-(move-m);
i=i+1;
u=fild(limx,limy);
if u==0
continue;
end
end
elseif mod(i,2)==0 & u~=0
for m=minfoot:1:move
limx=limx+m;
limy=limy+(move-m)
i=i+1;
u=fild(limx,limy);
if u==0
continue;
end
end
end
end
disp(u)

fild=[4 0 0 1;
5 0 3 2;
6 5 0 3;
7 0 0 4];
limx=4;
limy=4;
prompt='请输入每次允许的最大步数'
maxfoot=input(prompt);
prompt='请输入每次允许的最小步数'
minfoot=input(prompt);
u=fild(1,4);
i=1
while u~=7
move=minfoot+fix(rand()*(maxfoot-minfoot+1));
if mod(i,2)==1 & u~=0
for m=move:-1:minfoot
limx=limx-m;
limy=limy-(move-m);
i=i+1;
u=fild(limx,limy);
if u==0
continue;
end
end
elseif mod(i,2)==0 & u~=0
for m=minfoot:1:move
limx=limx+m;
limy=limy+(move-m)
i=i+1;
u=fild(limx,limy);
if u==0
continue;
end
end
end
end
disp(u)
