迷宫

const DEST:(usize, usize) = (7,9);
fn try_way(pre:(usize, usize),
            curr:(usize, usize), 
            map:&[[i32;10];10], 
            route:&mut Vec<(usize, usize)>){
  let up:(usize, usize) = (curr.0-1,curr.1);
  let down:(usize, usize) = (curr.0+1,curr.1);
  let left:(usize, usize) = (curr.0,curr.1-1);
  let right:(usize, usize) = (curr.0,curr.1+1);
  for i in vec![up, down, left, right]{
    if i!=pre{
      if map[i.0][i.1]==0{
        route.push(i);
        if i == DEST{
          println!("finished: {:?}", &route);
        }
        let mut route = route.clone();
        try_way(curr, i, &map, &mut route);
      }
    }
  }
}



fn main(){
  let map = [[  1,	1,	0,	1,	1,	1,	1,	1,	1,	1],
                  [1,	1,	0,	1,	0,	0,	0,	0,	0,	1],
                  [1,	0,	0,	1,	0,	1,	1,	0,	1,	1],
                  [1,	1,	0,	0,	0,	1,	0,	0,	0,	1],
                  [1,	1,	1,	1,	1,	1,	1,	0,	1,	1],
                  [1,	0,	0,	0,	1,	0,	0,	0,	0,	1],
                  [1,	0,	1,	0,	0,	0,	1,	1,	1,	1],
                  [1,	0,	1,	1,	1,	1,	1,	1,	0,	0],
                  [1,	0,	0,	0,	0,	0,	0,	0,	0,	1],
                  [1,	1,	1,	1,	1,	1,	1,	1,	1,	1]];

  let mut route:Vec<(usize, usize)> = vec![(0,2)];
  try_way((0,2), (1,2), &map, &mut route)
}

  

posted @ 2022-08-09 09:55  CrossPython  阅读(25)  评论(0)    收藏  举报