fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define W 10
  4. #define H 8
  5.  
  6. char map[H][W]={
  7. {1,1,1,1,1,1,1,1,1,1},
  8. {1,0,0,0,0,0,0,0,1,1},
  9. {1,0,1,0,1,0,1,0,0,1},
  10. {1,0,0,1,0,0,1,0,1,1},
  11. {1,1,0,1,0,0,0,1,1,1},
  12. {1,1,0,0,0,1,1,1,1,1},
  13. {1,1,1,1,0,0,0,2,1,1},
  14. {1,1,1,1,1,1,1,1,1,1},
  15. };
  16.  
  17. void print_map(){
  18. int i,j;
  19. for(i=0;i<=H-1;i++){
  20. for(j=0;j<=W-1;j++){
  21. switch(map[i][j]){
  22. case 0:
  23. printf(" ");
  24. break;
  25. case 1:
  26. printf("#");
  27. break;
  28. case 2:
  29. printf("G");
  30. break;
  31. }
  32. }
  33. printf("\n");
  34. }
  35. }
  36.  
  37. void maze0(int x, int y, int depth){
  38. int a;
  39. switch(map[y][x]){
  40. case 0:
  41. for(a=0;a<depth;a++){
  42. printf(" ");
  43. }
  44. printf("(%d,%d)\n",x,y);
  45. break;
  46. case 1:
  47. for(a=0;a<depth;a++){
  48. printf(" ");
  49. }
  50. printf("(%d,%d)X\n",x,y);
  51. break;
  52. case 2:
  53. for(a=0;a<depth;a++){
  54. printf(" ");
  55. }
  56. printf("(%d,%d)OK\n",x,y);
  57. break;
  58. }
  59. }
  60.  
  61. void maze1(int x, int y, int depth){
  62. int a;
  63. switch(map[y][x]){
  64. case 0:
  65. for(a=0;a<depth;a++){
  66. printf(" ");
  67. }
  68. printf("(%d,%d)\n",x,y);
  69. maze1(x+1,y,depth+1);
  70. maze1(x,y+1,depth);
  71. break;
  72. case 1:
  73. for(a=0;a<depth;a++){
  74. printf(" ");
  75. }
  76. printf("(%d,%d)X\n",x,y);
  77. break;
  78. case 2:
  79. for(a=0;a<depth;a++){
  80. printf(" ");
  81. }
  82. printf("(%d,%d)OK\n",x,y);
  83. exit(0);
  84. break;
  85. }
  86. }
  87.  
  88. int main(){
  89. print_map();
  90. maze1(1,1,0);
  91. return 0;
  92. }
Success #stdin #stdout 0s 5288KB
stdin
Standard input is empty
stdout
##########
#       ##
# # # #  #
#  #  # ##
## #   ###
##   #####
####   G##
##########
(1,1)
  (2,1)
    (3,1)
      (4,1)
        (5,1)
          (6,1)
            (7,1)
              (8,1)X
            (7,2)
              (8,2)
                (9,2)X
              (8,3)X
            (7,3)
              (8,3)X
            (7,4)X
          (6,2)X
        (5,2)
          (6,2)X
        (5,3)
          (6,3)X
        (5,4)
          (6,4)
            (7,4)X
          (6,5)X
        (5,5)X
      (4,2)X
    (3,2)
      (4,2)X
    (3,3)X
  (2,2)X
(1,2)
  (2,2)X
(1,3)
  (2,3)
    (3,3)X
  (2,4)
    (3,4)X
  (2,5)
    (3,5)
      (4,5)
        (5,5)X
      (4,6)
        (5,6)
          (6,6)
            (7,6)OK