Тема: Хрестики - нулики на безмежному полі
Привіт)
в мене виникла помилка при перевірці умови на перемогу гравців...помилка полягає в наступному:
відрахунок 5-х хрестиків/нуликів починається з головної діагоналі, тобто якщо почати ставити хрестик вище на одну клітинку від головної діагоналі то на стільки ж більше потрібно буде доставити хрестиків внизу(надіюсь зрозуміло пояснив 
 )
вот код перевірки умов(P.S.можу скинути весь проект якщо знадобиться):
//---Натиск лівою клавішею на віконечку(розміщення хрестика або нулика)
void MousePressed(int button,int state,int x,int y)
{
    if(button==GLUT_LEFT_BUTTON && state==GLUT_DOWN)
    {
        A.row=y/A.scale;
        A.col=x/A.scale;
        if(a[A.row][A.col].value==-1)
            a[A.row][A.col].value=A.gamer;
        else 
            return ;
        CheckVertical();
        CheckHorizontal();
        CheckMainDiagonal();
        CheckNotMainDiagonal();
        CheckAll();
        A.gamer=!A.gamer;
        ++A.count;
        PrintCard();
    }
}
//---функція для перевірки по вертикалі
void CheckVertical()
{
bool state=0;
for(int i=A.row;i<A.row+4;i++)
{
    if(a[i][A.col].value==A.gamer){}
    else
    {
        state=1;
        break;
    }
}
if(!state)
{
    exit(1);
    cout<<"Вертикальна перемога у "<<A.gamer<<endl;
    
}
}
//---Функція для перевірки по горизонталі
void CheckHorizontal()
{
bool state=0;
for(int i=A.col;i<A.col+4;i++)
{
    if(a[A.row][i].value==A.gamer){}
    else
    {
        state=1;
        break;
    }
}
if(!state)
{
    cout<<"Горизонтальна перемога перемога у "<<A.gamer<<endl;
    exit(1);
}
}
//---Функція для перевірки на головній діагоналі
void CheckMainDiagonal()
{
bool state=0;
for(int i=A.col;i<A.col+4;i++)
{
    if(a[i][i].value==A.gamer){}
    else
    {
        state=1;
        break;
    }
}
if(!state)
{
    cout<<"Дiагональна перемога перемога у "<<A.gamer<<endl;
    exit(1);
}
for(int i=A.col;i<A.col+4;i++)
{
    if(a[i][i].value==!A.gamer){}
    else
    {
        state=1;
        break;
    }
}
if(!state)
{
    cout<<"Діагональна перемога у "<<!A.gamer<<endl;
    exit(1);
}
}
//---Функція для перевірки на бічній діагоналі
void CheckNotMainDiagonal()
{
bool state=0;
for(int i=A.row,j=A.col-1;i<A.col+4;i++,j++)
{
    if(a[i][j].value==A.gamer){}
    else
    {
        state=1;
        break;
    }
}
if(!state)
{
    cout<<"Перемога по бiчнiй дiагоналi у "<<A.gamer<<endl;
    exit(1);
}
}
//---Функція для перевірки нічиї
void CheckAll()
{
    if(A.count>=A.rozm*A.rozm-1)
    {
        cout<<"НIЧИЯ!!!"<<endl;
        exit(1);
    }
}