fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define W 8
  4. #define H 6
  5. char map[H][W] = {
  6. {1,1,1,1,1,1,1,1},
  7. {1,0,0,1,1,1,1,1},
  8. {1,1,0,0,0,1,1,1},
  9. {1,1,1,1,0,0,1,1},
  10. {1,1,1,1,1,0,2,1},
  11. {1,1,1,1,1,1,1,1},
  12. };
  13.  
  14. void print_map(){
  15. for(int i=0;i<H;i++){
  16. if(i!=0) printf("\n");
  17. for(int j=0;j<W;j++){
  18. if(map[i][j]==0){
  19. printf(" ");
  20. }else if(map[i][j]==1){
  21. printf("#");
  22. }else if(map[i][j]==2){
  23. printf("G");
  24. }
  25. }
  26. }
  27. printf("\n");
  28. }
  29. void maze0(int x,int y,int depth){
  30. for(int i=0;i<depth*2;i++){
  31. printf(" ");
  32. }
  33. switch(map[y][x]){
  34. case 0: printf("(%d,%d)\n",x,y); break;
  35. case 1: printf("(%d,%d)X\n",x,y); break;
  36. case 2: printf("(%d,%d) OK\n",x,y); break;
  37. }
  38. }
  39. void maze1(int x,int y,int depth){
  40. for(int i=0;i<depth*2;i++){
  41. printf(" ");
  42. }
  43. switch(map[y][x]){
  44. case 0:
  45. printf("(%d,%d)\n",x,y);
  46. maze1(x+1,y,depth+1);
  47. maze1(x,y+1,depth+1);
  48. break;
  49. case 1: printf("(%d,%d)X\n",x,y); break;
  50. case 2: printf("(%d,%d) OK\n",x,y); exit(0); break;
  51. }
  52. }
  53. int main(){
  54. print_map();
  55. /*for(int i=0;i<H;i++){
  56.   for(int j=0;j<W;j++){
  57.   maze0(j,i,2);
  58.   }
  59.   }*/
  60. maze1(1,1,0);
  61. return 0;
  62. }
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
########
#  #####
##   ###
####  ##
##### G#
########
(1,1)
  (2,1)
    (3,1)X
    (2,2)
      (3,2)
        (4,2)
          (5,2)X
          (4,3)
            (5,3)
              (6,3)X
              (5,4)
                (6,4) OK