Pushok icon

Untitled

Pushok | PRO | 05/04/14 02:05:42 PM UTC | 0 ⭐ | 469 👁️ | Never ⏰ | []
C++ |

1.53 KB

|

None

|

0 👍

/

0 👎

struct Point
{
    Point *u, *d, *l, *r, *lu, *ld, *ru, *rd;
    char value;
};
 
#define SIZEM 10
 
void PrintMatrix(Point m[][SIZEM])
{
    for(int i = 0; i < SIZEM; ++i)
    {
        for(int j = 0; j < SIZEM; ++j)
        {
            std::cout << m[i][j].value;
        }
 
        std::cout << std::endl;
    }
}
 
void FillMatrix(Point arr[][SIZEM])
{
    for(int i = 0; i < SIZEM; ++i)
    {
        for(int j = 0; j < SIZEM; ++j)
        {
            arr[i][j].value = 'O';
        }
    }
}
 
void LinkMatrix(Point arr[][SIZEM])
{
    for(int i = 0; i < SIZEM; ++i)
    {
        for(int j = 0; j < SIZEM; ++j)
        {
            if(i-1 >= 0)
                arr[i][j].u = &arr[i-1][j];
            else
                arr[i][j].u = nullptr;
 
            if(i+1 <= SIZEM-1)
                arr[i][j].d = &arr[i+1][j];
            else
                arr[i][j].d = nullptr;
 
            if(j-1 >= 0)
                arr[i][j].l = &arr[i][j-1];
            else
                arr[i][j].l = nullptr;
 
            if(j+1 <= SIZEM-1)
                arr[i][j].r = &arr[i][j+1];
            else
                arr[i][j].r = nullptr;
 
            if(i-1 >= 0 && j -1 >= 0)
                arr[i][j].lu = &arr[i-1][j-1];
            else
                arr[i][j].lu = nullptr;
 
            if(i-1 >= 0 && j+1 <= SIZEM-1)
                arr[i][j].ru = &arr[i-1][j+1];
            else
                arr[i][j].ru = nullptr;
 
            if(i+1 <= SIZEM-1 && j-1 >= 0)
                arr[i][j].ld = &arr[i+1][j-1];
            else
                arr[i][j].ld = nullptr;
 
            if(i+1 <= SIZEM-1 && j+1 <= SIZEM-1)
                arr[i][j].rd = &arr[i+1][j+1];
            else
                arr[i][j].rd = nullptr;
        }
    }
}
 
int main()
{
    Point arr[SIZEM][SIZEM];
 
    LinkMatrix(arr);
    FillMatrix(arr);
    
    arr[1][1].rd->rd->rd->rd->rd->value= 'X';
    
    PrintMatrix(arr);
 
    std::cin.get();
}

Comments