#include "pch.h"
#include <iostream>
#include<ctime>
using namespace std;
int const N = 3;
int field[N][N];
int n = 0;
char name1[30] = "Игрок";
char name2[30] = "Компьютер";
void printField(int field[N][N])
{
cout << endl << " -----------------" << endl;
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
cout << "| " << (field[i][j] == 1 ? "X" : field[i][j] == 2 ? "O" : " ") << " ";
}
cout << "|" << endl << "|-----------------|" << endl;
}
}
void fillField(int field[N][N])
{
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
field[N][N] = 0;
}
}
}
/*
bool check(int field[N][N])
{
for (int row = 0; row < N; row++)
{
if ((field[row][0] == field[row][1] && field[row][2]) &&
(field[row][0] && field[row][1] && field[row][2] != 0 && 2))
{
cout << name2 << " Победитель";
return true;
}
else if ((field[row][0] == field[row][1] && field[row][2]) &&
(field[row][0] && field[row][1] && field[row][2] != 0 && 1))
{
cout << name1 << " Победитель";
return true;
}
}
//
for (int cols = 0; cols < N; cols++)
{
if ((field[0][cols] == field[1][cols] && field[2][cols]) &&
(field[0][cols] && field[1][cols] && field[2][cols] != 0 && 2))
{
cout << name2 << " Победитель";
return true;
}
else if ((field[0][cols] == field[1][cols] && field[2][cols]) &&
(field[0][cols] && field[1][cols] && field[2][cols] != 0 && 1))
{
cout << name1 << " Победитель";
return true;
}
}
//
if ((field[0][3] == field[1][2] && field[3][1]) &&
(field[0][3] && field[1][2] && field[3][1] != 0 && 2))
{
cout << name2 << " Победитель";
return true;
}
else if ((field[0][3] == field[1][2] && field[3][1]) &&
(field[0][3] && field[1][2] && field[3][1] != 0 && 1))
{
cout << name1 << " Победитель";
return true;
}
//
if ((field[0][0] == field[1][1] && field[2][2]) &&
(field[0][0] && field[1][1] && field[2][2] != 0 && 2))
{
cout << name2 << " Победитель";
return true;
}
else if ((field[0][0] == field[1][1] && field[2][2]) &&
(field[0][0] && field[1][1] && field[2][2] != 0 && 1))
{
cout << name1 << " Победитель";
return true;
}
return false;
}
*/
int main()
{
srand(time(NULL));
setlocale(LC_ALL, "ru");
fillField(field);
printField(field);
int x, y, turn;
turn = rand() % 2;
do
{
if (turn % 2 == 0)
{
do
{
cout << "Ваш ход: " << endl;
cout << endl << "X: ";
cin >> x;
cout << endl << "Y: ";
cin >> y;
x = x - 1;
y = y - 1;
if ((x >= 1 && x <= 3) && (y >= 1 && y <= 3) && (field[x][y] == 0))
{
break;
}
} while (field[x][y] = 0);
field[x][y] = 1;
}
else
{
cout << name2;
do
{
x = rand() % 2;
y = rand() % 2;
} while (field[x][y] != 0);
field[x][y] = 2;
}
printField(field);
for (int row = 0; row < N; row++)
{
if ((field[row][0] == field[row][1] && field[row][2]) &&
(field[row][0] && field[row][1] && field[row][2] != 0 && 2))
{
cout << name1 << " Победитель";
return 0;
}
else if ((field[row][0] == field[row][1] && field[row][2]) &&
(field[row][0] && field[row][1] && field[row][2] != 0 && 1))
{
cout << name2 << " Победитель";
return 0;
}
}
//
for (int cols = 0; cols < N; cols++)
{
if ((field[0][cols] == field[1][cols] && field[2][cols]) &&
(field[0][cols] && field[1][cols] && field[2][cols] != 0 && 2))
{
cout << name1 << " Победитель";
return 0;
}
else if ((field[0][cols] == field[1][cols] && field[2][cols]) &&
(field[0][cols] && field[1][cols] && field[2][cols] != 0 && 1))
{
cout << name2 << " Победитель";
return 0;
}
}
//
if ((field[0][3] == field[1][2] && field[3][1]) &&
(field[0][3] && field[1][2] && field[3][1] != 0 && 2))
{
cout << name1 << " Победитель";
return 0;
}
else if ((field[0][3] == field[1][2] && field[3][1]) &&
(field[0][3] && field[1][2] && field[3][1] != 0 && 1))
{
cout << name2 << " Победитель";
return 0;
}
//
if ((field[0][0] == field[1][1] && field[2][2]) &&
(field[0][0] && field[1][1] && field[2][2] != 0 && 2))
{
cout << name1 << " Победитель";
return 0;
}
else if ((field[0][0] == field[1][1] && field[2][2]) &&
(field[0][0] && field[1][1] && field[2][2] != 0 && 1))
{
cout << name2 << " Победитель";
return 0;
}
turn++;
} while (turn <= 9);
return 0;
}