睡能告诉我PASCAL的迷宫怎么做(要求:用最简便的方法);

来源:百度知道 编辑:UC知道 时间:2024/05/24 19:10:59
用方向数组做

宽度搜索
  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) or (oo.x<1) or (oo.y>10) or (oo.y<1) or (mg[oo.x,oo.y]<>0) then
  ok:=fals