void main()
{
using namespace std;
const int a = 3;
const int b = 3;
int an[a][b];
for (int i = 0; i < a; i++)
{
for (int j = 0; j < b; j++)
{
an[i][j] = rand() % 2;
}
}
for (int i = 0; i < a; i++)
{
for (int j = 0; j < b; j++)
{
cout<< an[i][j];
}
cout<< endl;
}
}
void main()
{
int a = 0, b = 0, X, N;
bool fl = true;
for (int i = 0; fl && i < n; i++) // в этом цикле проверка по строкам
{
X = 0, N = 0;
for (int j = 0; fl && j < n; j++) {
if (x[i][j] == 2)
X++; // если в строке встретился нолик то переменную X увеличиваем на 1
if (x[i][j] == 1)
N++; //если в строке встретился крестик то переменную N увеличиваем на 1
}
if (X == 2 && N == 0) // если в строке два нолика и нет крестиков (т.е. мы рассматриваем не только два рядом стоящих нолика, но и через одну свободную клетку)
{
fl = false;
for (int j = 0; j < n; j++)
if (x[i][j] == 0)
x[i][j] = 2; // то вычисляем, где свободная клетка и ставим туда нолик
}
}
for (i = 0; fl && i < n; i++) //в этом цикле аналогичная проверка по столбцам
{
X = 0, N = 0;
for (int j = 0; fl && j < n; j++) {
if (x[j][i] == 2)
X++;
if (x[j][i] == 1)
N++;
}
if (X == 2 && N == 0) {
fl = false;
for (int j = 0; j < n; j++)
if (x[j][i] == 0)
x[j][i] = 2;
}
}
X = 0, N = 0;
for (i = 0; fl && i < n; i++) // здесь идет похожая проверка по главной диагонали
{
if (x[i][i] == 2)
X++;
if (x[i][i] == 1)
N++;
}
if (X == 2 && N == 0) {
fl = false;
for (int i = 0; i < n; i++)
if (x[i][i] == 0)
x[i][i] = 2;
}
X = 0, N = 0;
for (i = 0; fl && i < n; i++) // здесь идет похожая проверка по побочной диагонали
{
if (x[2 - i][i] == 2)
X++;
if (x[2 - i][i] == 1)
N++;
}
if (X == 2 && N == 0) {
fl = false;
for (int i = 0; i < n; i++)
if (x[2 - i][i] == 0)
x[2 - i][i] = 2;
}
//
for (i = 0; fl && i < n; i++) //если вышеперечисленных вариантов нет, то ищем нолик с пустой рядом клеткой и ставим туда нолик
for (int j = 0; fl && j < n; j++)
if (x[i][j] == 2) {
if (i > 0 && x[i - 1][j] == 0) // здесь проверка верхней клетки на то что она свободна и если она свободна то ставим туда нолик
{
fl = false;
x[i - 1][j] = 2;
}
else if (j > 0 && x[i][j - 1] == 0) // здесь проверка левой клетки на то что она свободна и если она свободна то ставим туда нолик
{
fl = false;
x[i][j - 1] = 2;
}
else if (i < 2 && x[i + 1][j] == 0) // здесь проверка нижней клетки на то что она свободна и если она свободна то ставим туда нолик
{
fl = false;
x[i + 1][j] = 2;
}
else if (j < 2 && x[i][j + 1] == 0) // здесь проверка правой клетки на то что она свободна и если она свободна то ставим туда нолик
{
fl = false;
x[i][j + 1] = 2;
}
else if (i > 0 && j > 0 && x[i - 1][j - 1] == 0) // здесь проверка левой верхней клетки на то что она свободна и если она свободна то ставим туда нолик
{
fl = false;
x[i - 1][j - 1] = 2;
}
else if (i > 0 && j < 2 && x[i - 1][j + 1] == 0) // здесь проверка правой верхней клетки на то что она свободна и если она свободна то ставим туда нолик
{
fl = false;
x[i - 1][j + 1] = 2;
}
else if (i < 2 && j < 2 && x[i + 1][j + 1] == 0) // здесь проверка нижней правой клетки на то что она свободна и если она свободна то ставим туда нолик
{
fl = false;
x[i + 1][j + 1] = 2;
}
else if (i < 2 && j > 0 && x[i + 1][j - 1] == 0) // здесь проверка нижней левой клетки на то что она свободна и если она свободна то ставим туда нолик
{
fl = false;
x[i + 1][j - 1] = 2;
}
}
if (fl) // если нет и такого варианта, то выбираем место очередному нолику с помощью rand()
{
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Всем еще раз здрасте)Сейчас попробую более дитально описать проблему
мне нужно сделать код так, чтобы получился пример под цифрой 2 но код я смог сделать только так, что у меня получается пример под цифрой 1 Как...