Advertisement
Guest User

Untitled

a guest
Sep 8th, 2017
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.61 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define FLOOR_SIDE_SIZE 50
  4. #define COMMANDS 11
  5. #define FEATHER_UP 0
  6. #define FEATHER_DOWN 1
  7. #define TURTLE_PARAMS 4
  8.  
  9. void printFloor(int array[][FLOOR_SIDE_SIZE]);
  10. void move(int turtle[], int path_length);
  11.  
  12. main()
  13. {
  14.     int commands[COMMANDS + 4] = {2, {5, 12}, 3, {5, 12}, 3, {5, 12}, 3, {5, 12}, 1, 6, 9};
  15.     int flooor[FLOOR_SIDE_SIZE][FLOOR_SIDE_SIZE] = {0};
  16.     int turtle[TURTLE_PARAMS] = {0, 0, 2, 0}; // y, x, face (1-4: n s e w), feather
  17.     int counter;
  18.  
  19.     for (counter = 0; counter < COMMANDS; counter++) {
  20.         switch(commands[counter]) {
  21.             case 1:
  22.                 turtle[3] = FEATHER_UP;
  23.                 break;
  24.             case 2:
  25.                 turtle[3] = FEATHER_DOWN;
  26.                 break;
  27.             case 3:
  28.                 (turtle[2] == 4) ? (turtle[2] = 1) : (turtle[2]++);
  29.                 break;
  30.             case 4:
  31.                 (turtle[2] == 0) ? (turtle[2] = 4) : (turtle[2]--);
  32.                 break;
  33.             case 5:
  34.                 move(turtle, commands[counter][1]);
  35.                 break;
  36.             case 6:
  37.                 printFloor(flooor);
  38.                 break;
  39.             case 9:
  40.                 counter = COMMANDS;
  41.                 break;
  42.         }
  43.     }
  44.     return 0;
  45. }
  46.  
  47. void printFloor(int flooor[][FLOOR_SIDE_SIZE])
  48. {
  49.     int i, j;
  50.     for (i = 0; i < FLOOR_SIDE_SIZE; i++) {
  51.         for (j = 0; j < FLOOR_SIDE_SIZE; j++) {
  52.             printf("%d", flooor[i][j]);
  53.         }
  54.         printf("\n");
  55.     }
  56. }
  57.  
  58. void move(int turtle[], int path_length)
  59. {
  60.     int counter;
  61.     if (turtle[2] == 1) {
  62.         turtle[0] -= path_length;
  63.         if (turtle[3] == FEATHER_DOWN) {
  64.             for (counter = turtle[0]; counter < path_length; counter--) {
  65.                 flooor[counter][turtle[1]] = 1;
  66.             }
  67.         }
  68.     }
  69.     if (turtle[2] == 2) {
  70.         turtle[0] += path_length;
  71.         if (turtle[3] == FEATHER_DOWN) {
  72.             for (counter = turtle[0]; counter < path_length; counter++) {
  73.                 flooor[counter][turtle[1]] = 1;
  74.             }
  75.         }
  76.     }
  77.     if (turtle[2] == 3) {
  78.         turtle[1] += path_length;
  79.         if (turtle[3] == FEATHER_DOWN) {
  80.             for (counter = turtle[1]; counter < path_length; counter++) {
  81.                 flooor[turtle[0]][counter] = 1;
  82.             }
  83.         }
  84.     }
  85.     if (turtle[2] == 4) {
  86.         turtle[1] -= path_length;
  87.         if (turtle[3] == FEATHER_DOWN) {
  88.             for (counter = turtle[1]; counter < path_length; counter--) {
  89.                 flooor[turtle[0]][counter] = 1;
  90.             }
  91.         }
  92.     }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement