pascal迷宫题(用方向坐标做)

来源:百度知道 编辑:UC知道 时间:2024/05/25 01:07:53
用4个方向坐标来做。顺序为先下,后右,后上,后左;只要求根据优先方向求得一种答案。

宽度搜索
program a1;
type node=record
x,y,father:integer;
end;
atype=array[1..300] of node;
const mg:array[0..11,0..11] of 0..1
=((1,1,1,1,1,1,1,1,1,1,1,1),
(1,0,0,0,0,0,0,1,0,1,1,1),
(1,0,1,0,1,1,0,0,0,0,0,1),
(1,0,1,0,1,1,0,1,1,1,0,1),
(1,0,1,0,0,0,0,0,1,0,0,1),
(1,0,1,1,1,1,1,1,1,1,1,1),
(1,0,0,0,1,0,1,0,0,0,0,1),
(1,0,1,1,1,0,0,0,1,1,1,1),
(1,0,0,0,0,0,1,0,0,0,0,1),
(1,1,1,0,1,1,1,0,1,1,0,1),
(1,1,1,1,1,1,1,0,1,1,1,1),
(1,1,1,1,1,1,1,1,1,1,1,1));
zx:array[1..4] of integer=(1,-1,0,0);
zy:array[1..4] of integer=(0,0,1,-1);
xx=10;
yy=7;
var a:atype;
t,oo:node;
f,r,i,j,k:integer;
function ok:boolean;
begin
oo:=t;
oo.x:=oo.x+zx[i];
oo.y:=oo.y+zy[i];
ok:=true;
if (oo.x>10