迷宫

原创 2015年07月10日 09:46:37
program migong;
type node=record
          xx,yy:longint;
     end;
     all=array[1..10,1..10]of longint;
 const n=400;
 dx:array[1..4]of longint=(0,1,0,-1);
 dy:array[1..4]of longint=(1,0,-1,0);
 a:all=((0,0,0,0,0,0,1,0,1,1),
        (0,1,0,1,1,0,0,0,0,0),
        (0,1,0,1,1,0,1,1,1,0),
        (0,1,0,0,0,0,0,1,0,0),
        (0,1,1,1,1,1,1,1,1,1),
        (0,0,0,1,0,1,0,0,0,0),
        (0,1,1,1,0,0,0,1,1,1),
        (0,0,0,0,0,1,0,0,0,0),
        (1,1,0,1,1,1,0,1,1,0),
        (1,1,1,1,1,1,0,1,1,1));
 var head,tail,k,x1,y1,x2,y2,nx,ny:longint;
     state:array[1..n]of node;
     father:array[1..n]of longint;
 function check:boolean;
 begin
  check:=false;
  nx:=state[head].xx+dx[k];ny:=state[head].yy+dy[k];
  if (nx<1)or(nx>10)or(ny<1)or(ny>10) then
     check:=false
      else if a[ny,nx]=1 then check:=false
       else check:=true;
 end;
 function dupe:boolean;
 var i,j:longint;buf:boolean;
 begin
  buf:=false;i:=0;
  repeat
   inc(i);
   if (state[i].xx=state[tail].xx)and(state[i].yy=state[tail].yy)then
   buf:=true else buf:=false
    until buf or(i>=tail-1);
   dupe:=buf;
   end;
   procedure print;
   var buf:array[1..n]of longint;
   i,j,m:longint;
   begin
    m:=1;j:=tail;buf[1]:=j;
    while j>0 do
     begin
      j:=father[j];
      inc(m);buf[m]:=j;
     end;
    for i:=m-1 downto 2 do
      write('(',state[buf[i]].xx,',',state[buf[i]].yy,')','--');
      writeln('(',state[buf[1]].xx,',',state[buf[1]].yy,')');
    halt;
 end;
begin
 x1:=8;y1:=1;x2:=7;y2:=10;
 state[1].xx:=x1;
 state[1].yy:=y1;
 head:=1;tail:=1;father[head]:=0;
 repeat
  for k:=1 to 4 do
   if check then
    begin
     inc(tail);
     father[tail]:=head;
     state[tail].xx:=nx;
     state[tail].yy:=ny;
     if dupe then dec(tail)
      else if (state[tail].xx=x2)and(state[tail].yy=y2)
           then print;
   end;
 head:=head+1;
 until head>tail;
end.
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Qt随机迷宫及路径获取

  • 2017-08-21 19:26
  • 28.14MB
  • 下载

java实现走迷宫算法

代码实现了 读取文件中迷宫地图,打印迷宫地图并找到一条出口。第一次写java代码,留着纪念。 package com.maze.path; import java.util.Stack; impor...

走出迷宫显示路径

简易迷宫寻路

  • 2015-08-11 21:23
  • 31KB
  • 下载

迷宫问题(八个方向寻找)DFS

迷宫问题(八方向) input: 1 6 8 0 1 1 1 0 1 1 1 1 0 1 0 1 0 1 0 0 1 0 0 1 1 1 1 0 1 1 1 0 0 1 1 1 0 0...

迷宫程序代码

简易的迷宫算法

写给妹妹的编程札记 5 - 搜索: 迷宫问题 - 广度优先搜索

让我们也使用广度优先搜索来解决一下迷宫问题,对比一下。

栈的思想解决迷宫问题

内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)