Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #define N 10
- #define T_DIM (N*3*2+1) // Bok macierzy; +1 jest dla pewności ;)
- #define T_POW_2 (T_DIM*T_DIM) // Macierz kwadratowa, Dim like a dimension
- using namespace std;
- // -----------------------------------------------------------------------------
- void skocz(int x, int y, int ttl, int tab[], int start) // pos x, pos y, Time To Live,
- {
- if(ttl < 1) return;
- if(x < 0 || x > T_POW_2) return;
- if(y < 0 || y > T_POW_2) return;
- if(!start)
- tab[x+y*T_DIM]++; // tablicę liniową przerabiamy na kwadratową // Tak jest najprościej ;D
- ttl--;
- // zgodne ze wskazówkami zegara
- skocz(x+1, y+2, ttl, tab,0);
- skocz(x+2, y+1, ttl, tab,0);
- skocz(x+2, y-1, ttl, tab,0);
- skocz(x+1, y-2, ttl, tab,0);
- skocz(x-1, y-2, ttl, tab,0);
- skocz(x-2, y-1, ttl, tab,0);
- skocz(x-2, y+1, ttl, tab,0);
- skocz(x-1, y+2, ttl, tab,0);
- }
- // -----------------------------------------------------------------------------
- int main(int argc, char *argv[])
- {
- int tab[T_POW_2] = {0};
- for( int k = 1; k <= N; k++)
- {
- int multi = 0, one_time = 0;
- skocz(T_DIM/2, T_DIM/2, k, tab, 1);
- for(int i = 0; i < T_POW_2; i++)
- {
- multi += tab[i];
- if(tab[i])
- one_time++;
- cout << " " << (tab[i])? 1:0;
- if( i%T_DIM == 0)
- cout << endl;
- tab[i] = 0;
- }
- printf("N: %d\tone_t: %d\tmulti_t: %d\n", k, one_time, multi );
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement