Advertisement
Guest User

Done skoczek

a guest
May 12th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2.  
  3. #define N 10
  4. #define T_DIM (N*3*2+1)                                                      // Bok macierzy; +1 jest dla pewności ;)
  5. #define T_POW_2 (T_DIM*T_DIM)                                             // Macierz kwadratowa, Dim like a dimension
  6.  
  7. using namespace std;
  8.  
  9. // -----------------------------------------------------------------------------
  10.  
  11. void skocz(int x, int y, int ttl, int tab[])                                              // pos x, pos y, Time To Live,
  12. {
  13.   if(ttl < 1)             return;
  14.   if(x < 0 || x > T_POW_2)  return;
  15.   if(y < 0 || y > T_POW_2)  return;
  16.  
  17.   ttl--;
  18.  
  19.   tab[x+1+(y+2)*T_DIM]++;
  20.   tab[x+2+(y+1)*T_DIM]++;
  21.   tab[x+2+(y-1)*T_DIM]++;
  22.   tab[x+1+(y-2)*T_DIM]++;
  23.  
  24.   tab[x-1+(y-2)*T_DIM]++;
  25.   tab[x-2+(y-1)*T_DIM]++;
  26.   tab[x-2+(y+1)*T_DIM]++;
  27.   tab[x-1+(y+2)*T_DIM]++;
  28.  
  29.   // zgodne ze wskazówkami zegara
  30.   skocz(x+1, y+2, ttl, tab);
  31.    skocz(x+2, y+1, ttl, tab);
  32.    skocz(x+2, y-1, ttl, tab);
  33.   skocz(x+1, y-2, ttl, tab);
  34.  
  35.   skocz(x-1, y-2, ttl, tab);
  36.  skocz(x-2, y-1, ttl, tab);
  37.  skocz(x-2, y+1, ttl, tab);
  38.   skocz(x-1, y+2, ttl, tab);
  39.  
  40.   tab[x+y*T_DIM]--;
  41. }
  42.  
  43. // -----------------------------------------------------------------------------
  44.  
  45. int main(int argc, char *argv[])
  46. {
  47.   int tab[T_POW_2] = {0};
  48.  
  49.   for( int k = 1; k <= N; k++)
  50.   {
  51.       int one_time = 0;
  52.  
  53.       skocz(T_DIM/2, T_DIM/2, k, tab);
  54.  
  55.       for(int i = 0; i < T_POW_2; i++)
  56.       {
  57.         if(tab[i] > 0)
  58.           one_time++;
  59.  
  60.         tab[i] = 0;
  61.       }
  62.       printf("N: %d\tone_t: %d\n", k, one_time );
  63.   }
  64.  
  65.   return 0;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement