Pushok

Untitled

May 4th, 2014
487
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.53 KB | None | 0 0
  1. struct Point
  2. {
  3.     Point *u, *d, *l, *r, *lu, *ld, *ru, *rd;
  4.     char value;
  5. };
  6.  
  7. #define SIZEM 10
  8.  
  9. void PrintMatrix(Point m[][SIZEM])
  10. {
  11.     for(int i = 0; i < SIZEM; ++i)
  12.     {
  13.         for(int j = 0; j < SIZEM; ++j)
  14.         {
  15.             std::cout << m[i][j].value;
  16.         }
  17.  
  18.         std::cout << std::endl;
  19.     }
  20. }
  21.  
  22. void FillMatrix(Point arr[][SIZEM])
  23. {
  24.     for(int i = 0; i < SIZEM; ++i)
  25.     {
  26.         for(int j = 0; j < SIZEM; ++j)
  27.         {
  28.             arr[i][j].value = 'O';
  29.         }
  30.     }
  31. }
  32.  
  33. void LinkMatrix(Point arr[][SIZEM])
  34. {
  35.     for(int i = 0; i < SIZEM; ++i)
  36.     {
  37.         for(int j = 0; j < SIZEM; ++j)
  38.         {
  39.             if(i-1 >= 0)
  40.                 arr[i][j].u = &arr[i-1][j];
  41.             else
  42.                 arr[i][j].u = nullptr;
  43.  
  44.             if(i+1 <= SIZEM-1)
  45.                 arr[i][j].d = &arr[i+1][j];
  46.             else
  47.                 arr[i][j].d = nullptr;
  48.  
  49.             if(j-1 >= 0)
  50.                 arr[i][j].l = &arr[i][j-1];
  51.             else
  52.                 arr[i][j].l = nullptr;
  53.  
  54.             if(j+1 <= SIZEM-1)
  55.                 arr[i][j].r = &arr[i][j+1];
  56.             else
  57.                 arr[i][j].r = nullptr;
  58.  
  59.             if(i-1 >= 0 && j -1 >= 0)
  60.                 arr[i][j].lu = &arr[i-1][j-1];
  61.             else
  62.                 arr[i][j].lu = nullptr;
  63.  
  64.             if(i-1 >= 0 && j+1 <= SIZEM-1)
  65.                 arr[i][j].ru = &arr[i-1][j+1];
  66.             else
  67.                 arr[i][j].ru = nullptr;
  68.  
  69.             if(i+1 <= SIZEM-1 && j-1 >= 0)
  70.                 arr[i][j].ld = &arr[i+1][j-1];
  71.             else
  72.                 arr[i][j].ld = nullptr;
  73.  
  74.             if(i+1 <= SIZEM-1 && j+1 <= SIZEM-1)
  75.                 arr[i][j].rd = &arr[i+1][j+1];
  76.             else
  77.                 arr[i][j].rd = nullptr;
  78.         }
  79.     }
  80. }
  81.  
  82. int main()
  83. {
  84.     Point arr[SIZEM][SIZEM];
  85.  
  86.     LinkMatrix(arr);
  87.     FillMatrix(arr);
  88.    
  89.     arr[1][1].rd->rd->rd->rd->rd->value= 'X';
  90.    
  91.     PrintMatrix(arr);
  92.  
  93.     std::cin.get();
  94. }
Advertisement
Add Comment
Please, Sign In to add comment