fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. #define NORTH 0
  6. #define EAST 1
  7. #define SOUTH 2
  8. #define WEST 3
  9.  
  10. #define LEFT 0
  11. #define STRAIGHT 1
  12. #define RIGHT 2
  13.  
  14. #define SIZE 10
  15. #define CARTMAX 10
  16.  
  17. int map[SIZE][SIZE];
  18. struct {
  19. int i;
  20. int j;
  21. int facing;
  22. int inturn;
  23. } cart[CARTMAX];
  24. int cartindex;
  25.  
  26. int main(void) {
  27. for(int i=0;i<SIZE;i++)
  28. {
  29. for(int j=0;j<SIZE;j++)
  30. map[i][j]=fgetc(stdin);
  31. fgetc(stdin);
  32. }
  33.  
  34. for(int i=0;i<SIZE;i++)
  35. {
  36. for(int j=0;j<SIZE;j++)
  37. {
  38. switch(map[i][j])
  39. {
  40. case '>':
  41. map[i][j]='-';
  42. cart[cartindex].i=i;
  43. cart[cartindex].j=j;
  44. cart[cartindex].facing=WEST;
  45. cart[cartindex].inturn=0;
  46. cartindex++;
  47. break;
  48.  
  49. case '<':
  50. map[i][j]='-';
  51. cart[cartindex].i=i;
  52. cart[cartindex].j=j;
  53. cart[cartindex].facing=EAST;
  54. cart[cartindex].inturn=0;
  55. cartindex++;
  56. break;
  57.  
  58. case 'v':
  59. map[i][j]='|';
  60. cart[cartindex].i=i;
  61. cart[cartindex].j=j;
  62. cart[cartindex].facing=SOUTH;
  63. cart[cartindex].inturn=0;
  64. cartindex++;
  65. break;
  66.  
  67. case '^':
  68. map[i][j]='|';
  69. cart[cartindex].i=i;
  70. cart[cartindex].j=j;
  71. cart[cartindex].facing=NORTH;
  72. cart[cartindex].inturn=0;
  73. cartindex++;
  74. break;
  75.  
  76. }
  77. }
  78. }
  79.  
  80. printf("%d",cartindex);
  81.  
  82. return 0;
  83. }
  84.  
Success #stdin #stdout 0.01s 5288KB
stdin
/->-\        
|   |  /----\
| /-+--+-\  |
| | |  | v  |
\-+-/  \-+--/
  \------/  
stdout
2