Помогите защитить клетку от перезаписи другим игроком. И написать функцию Check(), которая проверяет выиграшные комбинации, и определяет ничью. Буду очень благодарен! Вот код: #include<iostream> #include<conio.h> using namespace std; #define vert_line (char)179 #define horiz_line (char)196 #define cross (char)197 #define middle "\n\n\n\n\n\n\n\n\n" void ASCII() { for (int i = 0; i < 256; i++) { cout << i << "\t" << (char)i << endl; } } void PrintField(char Field[], const int n, char Player); void Move(char Field[], const int n, char Player); void main() { const int n = 9; char Field[n] = {}; PrintField(Field, n, 'X'); //ASCII(); } void PrintField(char Field[], const int n, char Player) { system("CLS"); //Очистка экрана cout << middle; for (int i = 6; i >= 0; i -= 3) { cout.width(50); for (int j = 0; j < 3; j++) { if (j != 0)cout << vert_line; cout << " " << Field[i + j] << " "; } cout << endl; if (i != 0) { cout.width(50); cout << horiz_line << horiz_line << horiz_line << cross; cout << horiz_line << horiz_line << horiz_line << cross; cout << horiz_line << horiz_line << horiz_line; cout << endl; } } Move(Field, n, Player); } void Move(char Field[], const int n, char Player) { char key; do { key = getch(); if (key == 27)return; //При нажатии Escape - выход из рекурсии. if (key < '1' || key > '9') cout << "Error\a" << endl; } while (key < '1' || key > '9'); Field[key - 49] = Player; if (Player == 'X')PrintField(Field, n, '0'); else PrintField(Field, n, 'X'); } Код #include<iostream> #include<conio.h> using namespace std; #define vert_line (char)179 #define horiz_line (char)196 #define cross (char)197 #define middle "\n\n\n\n\n\n\n\n\n" void ASCII() { for (int i = 0; i < 256; i++) { cout << i << "\t" << (char)i << endl; } } void PrintField(char Field[], const int n, char Player); void Move(char Field[], const int n, char Player); void main() { const int n = 9; char Field[n] = {}; PrintField(Field, n, 'X'); //ASCII(); } void PrintField(char Field[], const int n, char Player) { system("CLS"); //Очистка экрана cout << middle; for (int i = 6; i >= 0; i -= 3) { cout.width(50); for (int j = 0; j < 3; j++) { if (j != 0)cout << vert_line; cout << " " << Field[i + j] << " "; } cout << endl; if (i != 0) { cout.width(50); cout << horiz_line << horiz_line << horiz_line << cross; cout << horiz_line << horiz_line << horiz_line << cross; cout << horiz_line << horiz_line << horiz_line; cout << endl; } } Move(Field, n, Player); } void Move(char Field[], const int n, char Player) { char key; do { key = getch(); if (key == 27)return; //При нажатии Escape - выход из рекурсии. if (key < '1' || key > '9') cout << "Error\a" << endl; } while (key < '1' || key > '9'); Field[key - 49] = Player; if (Player == 'X')PrintField(Field, n, '0'); else PrintField(Field, n, 'X'); }