[C] 老鼠走迷宫算法改进版(求所有走法)回溯算法 c语言 →→→→→进入此内容的聊天室

来自 , 2019-09-28, 写在 C, 查看 111 次.
URL http://www.code666.cn/view/2596a54c
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void visit ( int, int );
  5.  
  6. int maze[9][9] = {{2, 2, 2, 2, 2, 2, 2, 2, 2},
  7.         {2, 0, 0, 0, 0, 0, 0, 0, 2},
  8.         {2, 0, 2, 2, 0, 2, 2, 0, 2},
  9.         {2, 0, 2, 0, 0, 2, 0, 0, 2},
  10.         {2, 0, 2, 0, 2, 0, 2, 0, 2},
  11.         {2, 0, 0, 0, 0, 0, 2, 0, 2},
  12.         {2, 2, 0, 2, 2, 0, 2, 2, 2},
  13.         {2, 0, 0, 0, 0, 0, 0, 0, 2},
  14.         {2, 2, 2, 2, 2, 2, 2, 2, 2}
  15. };
  16.  
  17. int startI = 1, startJ = 1;  // 入口
  18. int endI = 7, endJ = 7;  // 出口
  19.  
  20. int main ( void )
  21. {
  22.         int i, j;
  23.  
  24.         printf ( "显示迷宫:\n" );
  25.         for ( i = 0; i < 9; i++ )
  26.         {
  27.                 for ( j = 0; j < 9; j++ )
  28.                         if ( maze[i][j] == 2 )
  29.                                 printf ( "█" );
  30.                         else
  31.                                 printf ( "  " );
  32.                 printf ( "\n" );
  33.         }
  34.  
  35.         visit ( startI, startJ );
  36.  
  37.         return 0;
  38. }
  39.  
  40. void visit ( int i, int j )
  41. {
  42.         int m, n;
  43.  
  44.         maze[i][j] = 1;
  45.  
  46.         if ( i == endI && j == endJ )
  47.         {
  48.                 printf ( "\n显示路径:\n" );
  49.                 for ( m = 0; m < 9; m++ )
  50.                 {
  51.                         for ( n = 0; n < 9; n++ )
  52.                                 if ( maze[m][n] == 2 )
  53.                                         printf ( "█" );
  54.                                 else if ( maze[m][n] == 1 )
  55.                                         printf ( "◇" );
  56.                                 else
  57.                                         printf ( "  " );
  58.                         printf ( "\n" );
  59.                 }
  60.         }
  61.  
  62.         if ( maze[i][j+1] == 0 ) visit ( i, j+1 );
  63.         if ( maze[i+1][j] == 0 ) visit ( i+1, j );
  64.         if ( maze[i][j-1] == 0 ) visit ( i, j-1 );
  65.         if ( maze[i-1][j] == 0 ) visit ( i-1, j );
  66.  
  67.         maze[i][j] = 0;
  68. }
  69.  

回复 "老鼠走迷宫算法改进版(求所有走法)回溯算法 c语言"

这儿你可以回复上面这条便签

captcha